firebreath プロジェクトで外部 dll ファイルのいくつかの関数を使用する必要があります。このプロジェクトはマネージ C++ プロジェクトです。プロジェクトで外部ファイルを参照またはインクルードする方法を知りたいのですが、Visual Studio 2010 で [参照の追加] オプションが表示されません (これはマネージ C++ プロジェクトであるため)。これを行う方法を教えてください..
2676 次
1 に答える
4
DLL 内で呼び出す関数の名前を知っていると仮定すると、使用する必要があるメカニズムは次のとおりです。
// these are examples of functions --> change return values and params as needed
typedef CHAR (WINAPI *DLL_FUNC1) (USHORT, USHORT);
typedef CHAR (WINAPI *DLL_FUNC2) (USHORT, UCHAR*, UCHAR*, USHORT, UCHAR*, USHORT*, UCHAR*);
typedef CHAR (WINAPI *DLL_FUNC3) (USHORT);
// load library
HMODULE hDLL = LoadLibrary( L"\\path\\to\\your.dll" );
// check if dll was loaded
if (hDLL == NULL) {
// error
return;
}
// assign functions
DLL_FUNC1 func1 = (DLL_FUNC1) GetProcAddress( hDLL, "name_of_func1" );
DLL_FUNC2 func2 = (DLL_FUNC2) GetProcAddress( hDLL, "name_of_func2" );
DLL_FUNC3 func3 = (DLL_FUNC3) GetProcAddress( hDLL, "name_of_func3" );
// use functions --> here func1 as an example
if( func1( 1, 2 ) != OK ) { // or whatever return value
// error
FreeLibrary( hDLL );
return;
}
// --> go on working with the DLL functions
// do not forget to call at the end
FreeLibrary( hDLL );
于 2013-04-26T05:58:49.860 に答える