|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Мар 25, 2004 18:45:54 Камрады, помогите плиз получить имя файла из открытого HANDLE, желательно документированными ср-вами. |
|
|
Дата: Мар 25, 2004 19:15:41 · Поправил: Dr.Golova Поисковиками пользоваться религия не позволяет? hXXp://msdn.microsoft.com/library/default.asp?url=/library/en-us/filei o/base/obtaining_a_file_name_from_a_file_handle.asp |
|
|
Дата: Мар 25, 2004 19:18:55 Ахтунг! Форум глючит - в линке убери пробел в слове fileio |
|
|
Дата: Мар 26, 2004 13:24:20 спасибо, но до этого я как раз сам допер. странно, я не нашел этого в msdn который с VS.NET шел, старый наверное. Просто способ прямо скажем через одно место, думал есть более другой, проще. |
|
|
Дата: Мар 26, 2004 13:37:24 я не нашел этого в msdn который с VS.NET Есть он там, делаешь поиск по фразе "obtaining a file name from a file handle" - будет всего 2 ссылки. Проще нет, можно сложнее придумать :) |
|
|
Дата: Мар 26, 2004 13:59:55 · Поправил: MarsRover у меня MSDN 2001, там такое не находится :) Кстати, проблема то изначально была вот в чем: при обработке LOAD_DLL_DEBUG_EVENT нужно получить имя dll. WinXP SP1 1) можно через DEBUG_EVENT.u.LoadDll.lpImageName и ReadProcessMemory(). Но указатель по адресу lpImageName очень часто NULL (я заметил, что он NULL когда dll подгружается через LoadLibrary(), а не из таблицы импорта). 2) Можно через PSAPI и DEBUG_EVENT.u.LoadDll.lpBaseOfDll (GetModuleFileNameEx), но этот способ не работает наоборот, когда через таблицу импорта грузится. (видать в момент обработки LOAD_DLL_DEBUG_EVENT модуль еще не занесен в список, т.к. EnumProcessModules() его не видит). 3) Можно через DEBUG_EVENT.u.LoadDll.hFile, указанным Dr. Golova способом. Но судя по описанию LOAD_DLL_DEBUG_INFO hFile может тоже быть NULL. Вопрос: Неужели нет универсального надежного способа получить имя файла DLL при обработке LOAD_DLL_DEBUG_EVENT? Сейчас использую все 3, пока какой-либо не даст результата. 3-й оказался самый надежный. 1 и 2 оказались взаимоисключаюими (тоесть если работает 1 то не работает 2, и наоборот). |
|
|
Дата: Мар 27, 2004 11:27:44 |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.046 |