Что не так с MANIFEST-ом?

Тема в разделе "WASM.WIN32", создана пользователем ALLeX, 5 мар 2009.

  1. ALLeX

    ALLeX Member

    Публикаций:
    0
    Регистрация:
    21 окт 2004
    Сообщения:
    141
    Адрес:
    Ukraine
    Происходит непонятный глюк при вкл. ниже следующего манифеста в ресурсы. Заключается в том, что при запуске через проводник окно не появляется. Far-ом к примеру запускается на ура. Почему так?
    manifest.xml:
    Код (Text):
    1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    2. <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    3. <dependency>
    4. <dependentAssembly>
    5. <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="X86" publicKeyToken="6595b64144ccf1df" language="*"/>
    6. </dependentAssembly>
    7. </dependency>
    8. </assembly>
    test.asm:
    Код (Text):
    1.         invoke DialogBoxParam, hInstance, MAINDLG, NULL, ADDR DlgProc, NULL
    2.     invoke ExitProcess, eax
    3. DlgProc proc hWnd:HWND, Msg:UINT, wParam:WPARAM, lParam:LPARAM
    4.     .IF Msg==WM_INITDIALOG
    5.         mov eax, TRUE
    6.     .ELSEIF Msg==WM_CLOSE
    7.         invoke EndDialog, hWnd, NULL
    8.         mov eax, TRUE
    9.     .ELSEIF Msg==WM_COMMAND
    10.         mov eax, TRUE
    11.     .ELSE
    12.         mov eax, FALSE
    13.     .ENDIF
    14.     ret
    15. DlgProc endp
    test.rc:
    Код (Text):
    1. #define MAINDLG     1000
    2. #define IDC_BUTTON1 1001
    3. #define IDR_XPMANIFEST1 1
    4.  
    5. MAINDLG DIALOGEX 0, 0, 120, 54
    6. STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_CENTER
    7. CAPTION "Test"
    8. FONT 12, "MS Shell Dlg"
    9. BEGIN
    10.     PUSHBUTTON      "Button1",IDC_BUTTON1,35,20,50,14
    11. END
    12.  
    13. IDR_XPMANIFEST1 MANIFEST "manifest.xml"
     
  2. ALLeX

    ALLeX Member

    Публикаций:
    0
    Регистрация:
    21 окт 2004
    Сообщения:
    141
    Адрес:
    Ukraine
    PS. OS - XP SP2
    Если в свойствах файла вкл. режим совместимости с Windows 98/Me, запускается нормально.
     
  3. G13

    G13 New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2006
    Сообщения:
    499
    Всё замечательно запускается без каких-либо дополнительных усилий.

    Тем не менее:
    Либо добавить "#define MANIFEST 24", либо исправить эту строчку на "IDR_XPMANIFEST1 24 "manifest.xml"
     
  4. ALLeX

    ALLeX Member

    Публикаций:
    0
    Регистрация:
    21 окт 2004
    Сообщения:
    141
    Адрес:
    Ukraine
    G13
    Заработало!!!!
    Блин, думал у меня в resource.h MANIFEST дефайнед...
    Спасибо!!!

    PS. Посмотрел - а он там действительно прописан, а в начале .rc файла: #include "\masm32\include\resource.h".
     
  5. ALLeX

    ALLeX Member

    Публикаций:
    0
    Регистрация:
    21 окт 2004
    Сообщения:
    141
    Адрес:
    Ukraine
    Поймал этот глюк снова. :) Но теперь всё прописано как требуется и как выяснилось проблема вообще была в другом. :))) Я просто не подключил comctl32.lib к проекту. Не подключал потому что все раньше работало и без соотв. инклуда comctl32.lib... К тому же прога не запускается даже если манифест не в ресурсах, а валяется рядом. Стоит его удалить - всё работает как должно.
    Смутные подозрения, что трабла на самом деле не с прогой, а со средой выполнения. Прогнал через Dependency Walker. Он показал загрузку кучи всякой левой дряни типа WL_HOOK.DLL от файрвола. Там же видно, что нелады какие то с comctl32.dll
    И последнее: Прога нормально запускается под другой ОС (пробовал на Windows7). Вот. Теперь бы выяснить, что именно портит всю малину... Как бы эти хитрые хук-длл по одиночке по отключать?
     
  6. Melancholic

    Melancholic New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2007
    Сообщения:
    2
    ALLeX, у меня таже проблема, нашел решение?