Сразу не пинайте... просто не смог нигде найти информацию как можно заюзать функцию из Shell32.dll, зная только её индекс. Укажите куда капать. ЗЫ На делфи эта функция объявляется так: procedure ExitWindowsDialog(ParentWnd: integer); stdcall; external 'Shell32.dll' index 60; Как её объявить в masm32
Причём здесь индекс? ) Если этой функции ExitWindowsDialog в твоём Shell32.inc нет, то добавь её прототип в Shell32.inc: ExitWindowsDialog PROTO WORD Потом запускай BLDLIBS.BAT, который находится там же где и Shell32.inc. Он тебе создаст новую Shell32.lib, в которой будет добавлена эта функция. В проекте на masm32 пиши: include Shell32.inc includelib Shell32.lib Вот и всё )))))))))))))))))))))
RiPPER Если ничего не получится, то делай так ЗЕЛЁНЫЙ: ;---------------------------------------------- TExitWindowsDialog typedef PROTO WORD .DATA? hShell32 DWORD ? ExitWindowsDialog TExitWindowsDialog ? ParentWnd DWORD ? .CODE ;... invoke LoadLibrary, TEXT("SHELL32.DLL") mov hShell32, eax invoke GetProcAddress, hShell32, 60 mov ExitWindowsDialog, eax ;... invoke ExitWindowsDialog, ParentWnd ;... invoke FreeLibrary, hShell32 ;---------------------------------------------- PS: Простите, что без аттача...
Второй вариант не подходит по определённым причинам. А вот как в shell32.inc прописать именно ту самую функцию номер 60, которая идёт без названия (не документированная)? ExitWindowsDialog PROTO WORD эта строчка же не указывает на конкретную API функцию... Или я чего-то совсем не понял. Может мануал по этой теме есть? Ткните носом пожалуйста! А по поводу "procedure ExitWindowsDialog(ParentWnd: integer); stdcall; external 'Shell32.dll' index 60;" её такой строчкой можно обявлять в делфе для последующего использования в программе. У этой функции нет названия, она экспортируется по номеру (60)... Вот я теперь теряюсь в догадках как её можно прописать в shell32.inc. Делфи после такого обявления нормально её подцепляет из shell32.dll и нормально в табличку импорта заносит.
Действительно не объявлена Ordinal/Name 58 RestartDialog 59 ? 60 ? 61 PickIconDlg Я вызывал (см. выше) invoke ExitWindowsDialog, NULL она показывает диалог завершения Windows.
Мдяяяяя, может кто другой посоветует Вот всё, что я могу тебе RiPPER предложить... 1123090999__DEMO.RAR