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