Здравствуйте, loggik, Вы писали:
L>Вопрос решен, вот с таким дескриптором ресурс находится.
L>L>HANDLE GetCurrModuleHandle()
L>{
L> char path[MAX_PATH] = {0};
L> MEMORY_BASIC_INFORMATION minfo;
L> ZeroMemory(&minfo, sizeof(MEMORY_BASIC_INFORMATION));
L> if(VirtualQuery((void *)GetCurrModuleHandle, &minfo, sizeof(MEMORY_BASIC_INFORMATION)))
L> {
L> GetModuleFileName((HMODULE)minfo.AllocationBase, path, MAX_PATH);
L> return GetModuleHandle(path);
L> }
L> return 0;
L>}
L>
Это делается проще. Когда грузится dll, в ее точку входа (DllMain) приходит хэндл модуля.
Вот его и надо запомнить, а потом использовать для загрузки ресурсов, находящися в ней.
Да и для и других функций тоже.
А находить и загружать ресурсы надежнее всего с помощью трио EnumResourceTypes,
EnumResourceNames и EnumResourceLanguages. Дело в том, что в зависимости от того, каким
способом ресурсы добавляются в проект, они могут получать разные языковые идентификаторы, и
в определенных ситуациях стандартными FindResource(Ex) эти ресурсы перестают находиться.