私は3つのDLLをロードするためにload library関数を使用しています。コンパイル時にDLLが読み込まれないC++、Visual Studio
しかし、デバッグフォルダから、同じアプリケーション(まったく同じファイルが)それが失敗したことを実行している場合:
Visual Studioの内部で実行しているときにコンパイルされたコードが正常に動作しますDLLファイルをロードするために使用しているコードは次のとおりです。
#include <Windows.h>
HMODULE dll_cmn = LoadLibrary(L"C:\\LKG5000_DLL_ver1_10\\English\\64bit\\CmnLib.dll");
HMODULE dll_drv = LoadLibrary(L"C:\\LKG5000_DLL_ver1_10\\English\\64bit\\KeyUsbDrv.dll");
HMODULE dll_if2 = LoadLibrary(L"C:\\LKG5000_DLL_ver1_10\\English\\64bit\\LKIF2.dll");
cout << "\n>> Addr dll_cmn: " << dll_cmn << endl;
cout << " Addr dll_cmn: " << dll_drv << endl;
cout << " Addr dll_cmn: " << dll_if2 << endl;
if (NULL != dll_cmn && NULL != dll_drv && NULL != dll_if2)
{
cout << "\n>> Created .dll Handles Successfully" << endl;
//do stuff
}
else
{
cout << "\n>> Failed to Create .dll Handles" << endl;
}
写真は.exeが同じフォルダパス内の同じファイルであることを示しているので、私は混乱していますか?
本当にありがとうございます!
MCVEが助けてくれるかもしれません:https://stackoverflow.com/help/mcve –
GetLastErrorを呼び出し、返された値を調べる必要があります。 – VTT
確かに。エラーをチェックしてください。無力にしないでください。システムが失敗した理由を教えてくれます。 –