C ++ LoadLibrary ERROR_NOACCESS «Недопустимый доступ к ячейке памяти».

Хорошо, у меня возникла ситуация, когда я вызываю LoadLibrary для библиотеки DLL, которую я написал. Этот вызов LoadLibrary возвращает ошибку №998 или ERROR_NOACCESS «Недопустимый доступ к области памяти».

Рассматриваемая DLL использует MFC в одной конфигурации, а не в другой; только конфигурация MFC имеет эту проблему. Это раньше работало , но я понятия не имею, что я изменил: я фактически перешел на версию без MFC и довольно много возился с этим, и я понятия не имею, что я мог бы сделать это повлияло на версию MFC.

Я не очень разбираюсь в библиотеках DLL. На самом деле мне был передан исходный код загрузки, и я его не менял. Ниже приведен этот код:

// submodule loading
#ifndef MFC
// Project uses standard windows libraries, define an entry point for the DLL to handle loading/unloading
BOOL WINAPI DllMain(HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)
{
    _MESSAGE("DllMain called.");
    switch(dwReason)
    {
    case DLL_PROCESS_ATTACH:    // dll loaded
        hModule = (HMODULE)hDllHandle;  // store module handle
        _MESSAGE("Attaching Submodule ..."); 
        break;
    case DLL_PROCESS_DETACH:    // dll unloaded
        _MESSAGE("Detaching Submodule ...");      
        break;
    }   
    return true;
}
#else
// Project uses MFC, we define here an instance of CWinApp to make this a 'well-formed' DLL
class CSubmoduleApp : public CWinApp
{
public:
    virtual BOOL InitInstance()
    {// dll loaded
        hModule = m_hInstance;  // store module handle
        _MESSAGE("Attaching Submodule ...");
        return true;
    }
    virtual int ExitInstance()
    {// dll unloaded
       _MESSAGE("Detaching Submodule ...");      
       return CWinApp::ExitInstance();
    }
} gApp;
#endif

Очевидно, MFC определен в конфигурации MFC, а не иначе.

Я сомневаюсь, что этой информации достаточно для решения этой проблемы; Я это понимаю. На самом деле я надеюсь узнать , где искать проблемы , которые могут вызвать эту ошибку. Я буду рад предоставить любую необходимую информацию - как только я узнаю, что она нужна.

Спасибо за любые советы.

6
задан Carey Gregory 7 October 2011 в 22:59
поделиться