Отложенная загрузка и прерывание выполнения работы
От: sax0n Украина  
Дата: 05.01.09 17:42
Оценка:
всех с НГ.
Такой вот вопросец есть: линкую DLL (Д) статически к своей программе.
программа (П) представляет собой плагин (ДЛЛ).
Если не находится Д, то при старте появляется чудная системная надпись о том, что Д е была найдена и плагин вываливается.
Мне же нужно убрать эту надпись и показать просто свое сообщение и завершить работу плагина.
Второе я сделать могу: через отложенную загрузку я могу сначала в DllMain проверить, можно ли загрузить Д и реагирую в зависимости от результата, но после этого все равно появляется системная надпись, что бы я не возвращал в DllMain
//Отложеннгая загрузка
#include <DelayImp.h>
#pragma comment(lib, "Delayimp.lib")
#pragma comment(lib,"my.lib")


BOOL APIENTRY DllMain( HINSTANCE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    hDllInstance = hModule;
    if (ul_reason_for_call == DLL_PROCESS_ATTACH)
    {
        HMODULE hlib = LoadLibrary(L"my.dll");
        if(!hlib)
        {
            MessageBoxA(0, "Error", "", 0);
            //lpReserved = NULL;
            return NULL;
        }
        //FreeLibrary(hlib);
    }
    return NULL; //Здесь пробовал разные значения вовзвращать...
}

По сути нужно прервать загрузку плагина, чтобы он не пытался загрузить Д.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.