|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июн 2, 2004 14:09:20 · Поправил: 1990 Здравствуйте! Интересная получается ситуация - описание функции есть, а её саму найти не могу. Дело в том, что ещё не так давно я поднимал вопрос о возможности вызова свойств у "Корзины". Toxic ответил мне и привёл такой пример: invoke SHObjectProperties, hWndOwner, 2, szObjectPath, szTabName В тот момент у меня несколько изменились задачи и разбираться с функцией я не стал. Сейчас снова понадобилась эта функция и я полез в MSND за описанием. Описание нашёл, Import library - Shell32.dll. Но в Windows 2000 Professional SP 3 в shell32.dll функции не оказалось - мистика ;-) На другом сайте прочёл, чтоверсия библиотеки должна быть 5.0, а в w2k SP3 - 5.0.3502.5436 Что делать? Может быть, я просто что-то напутал, но и в случае использования LoadLibrary/GetProcAddress тоже ничего не находиться. Подскажите пожалуйста, какой-нибудь выход! PS. А как вызывать функции по их ординалу? Может быть это просто LoadLibrary/GetProc... Заранее благодарен! 1990. |
|
|
Дата: Июн 2, 2004 19:24:15 Символ опредлен в Shell32.Lib. Не вижу каких-то проблем. Что до ординалов - в упаковщиках первой части написано. Надо макрос использовать. Там все показано. |
|
|
Дата: Июн 2, 2004 20:35:33 volodya Может быть в последней версии пакета MASM? У меня - нет. Может быть возможно мне в атаче положить shell32.lib+inc? Просто возможности скачать весь МАСМ32 нет. Спасибо! В статье поищу ответ на вопрос по вызову по ординалу. |
|
|
Дата: Июн 2, 2004 20:43:39 Перед тем, как аттачить, ты уверен, что с LoadLibrary/GetProcAddress ты в пролете? |
|
|
Дата: Июн 3, 2004 10:47:20 volodya Насколько могу - уверен. Приаттач, пожалуйста! |
|
|
Дата: Июн 3, 2004 11:53:40 Правка 1990 Ты прав. Отчасти. Дело в том, что SHObjectProperties вызывается по ординалу 178. Если получать адрес функции через GetProcAddress по имени, то, естесственно, эта функция не будет найдена, что и покажет отладчик. Использовать импорт как обычно тоже не получается и вот почему. В MASM32 эта функция не определена в заголовочном файле (shell32.inc) надо это сделать вручную (никаких проблем). Но так как файлы библиотечных модулей (.lib) строятся на основе заголовочных (утилитой inc2l), то и в shell32.lib эта функция не определена и компоновщик отказывается собирать приложение. В общем, выходов несколько:
Shell32.lib в аттаче… _1520059719__Shell32.rar |
|
|
Дата: Июн 3, 2004 11:57:55 · Поправил: IceStudent Правка 1990 И ещё. Просто возможности скачать весь МАСМ32 нет. Не обязательно ради одного файла качать MASM32 или PlatformSDK. Используй, например, вот это |
|
|
Дата: Июн 3, 2004 15:43:41 IceStudent Большое спасибо за детальное описание и аттач! |
|
|
Дата: Июн 6, 2004 05:11:07 что версия библиотеки должна быть 5.0, а в w2k SP3 - 5.0.3502.5436 Что делать? Ты же MSDN читал. Minimum DLL Version: shell32.dll version 5.0 or later Minimum operating systems: Windows 2000 |
|
|
Дата: Июн 6, 2004 05:28:54 А вообще оно и в 98-й винде без проблем работает. И, кажется, даже в 95-й(сейчас уже не припомню). |
|
|
Дата: Июн 6, 2004 05:41:27 1990 Да, ты ж не забудь, что документированная версия(5.0 и выше) принимает Unicode-строки, а недокументированная - ASCII. |
|
|
Дата: Июн 6, 2004 10:41:59 Toxic Спасибо! Я сейчас ещё несколько недокументированных функций нашёл в shell32.dll. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.065 |