0

C++ Visual Studio 2012 には、cygwin でビルドされた dll ファイルから静的関数を呼び出すためのこの小さなコードがあり、以下のこのコードは完全に機能します。問題は、関数呼び出しでクラッシュするか、通常どおり結果値をコンソールに出力することがありますが、Visual Studio のデバッガーが前進していないことです。奇妙な振る舞い。アプリケーションを終了した後、正しくクリーンアップしていないのではないでしょうか? 初めてVSをロードすると動作しますが、デバッグとクラッシュの後、これが発生し始めます。

PFN_HELLO fnHello;
HMODULE hLib, h = LoadLibrary(TEXT("cygwin1.dll")); 
PFN_CYGWIN_DLL_INIT init = (PFN_CYGWIN_DLL_INIT) GetProcAddress(h,"cygwin_dll_init");
init();

hLib = LoadLibrary (TEXT("cyghello.dll"));

if (NULL == hLib)
{
DWORD _err = GetLastError();
//return 1;
}

//typedef LRESULT (WINAPI *PFN)(HWND, UINT, WPARAM, LPARAM);
// PFN MySendMessageW;

//MySendMessageW = (PFN) GetProcAddress(hLib,"runMainRoutine");

fnHello = (PFN_HELLO) GetProcAddress (hLib, "runMainRoutine@4");


if (NULL == fnHello)
{
DWORD _err = GetLastError();
//return 1;
}


char* _bablabla = fnHello(_input);

FreeLibrary(h);
FreeLibrary(hLib);

return _bablabla;
4

1 に答える 1