私はEXEにコンパイルするVC++win32アプリケーションを持っています。しかし、今度はそれをdllに変換して、別のアプリケーションにロードできるようにします。VisualStudioのプロパティを.EXEから.DLLに変更して正常に変換しようとしましたが、GetProcAddressを使用すると常にNULLが返されます。私がしていることが正しいか間違っているかわかりません。
基本的にこれは私が達成したいことです:
- プロジェクト1とプロジェクト2をリンクしたい
- プロジェクト2は、project1の関数を呼び出すことができる必要があります(これはexeファイルです)
編集 こんにちはみんなあなたの入力に感謝します。私はあなたたちが言ったことを話しました。それでも、GetProcAddressはゼロを返します。私は何か間違ったことをしていますか?以下に私のdll読み込みコードを示しています。
HINSTANCE LoadMe = LoadLibrary( _T("D:\\VC++Project\\CVAList\\CVAList\\ExportTest.dll"));
if (LoadMe != 0)
printf("LoadMe library loaded!\n");
else
printf("LoadMe library failed to load!\n");
EntryPointfuncPtr LibMainEntryPoint;
LibMainEntryPoint = (EntryPointfuncPtr)GetProcAddress(LoadMe,"PrintFloatsVal");
LibMainEntryPoint (a1 ,a,b,c,d ); // 4 double
DLLエクスポートコードを編集する
#define DllExport __declspec( dllexport )
DllExport void PrintFloatsVal ( int amount, double &d1 ,double &d2 , double &d3 ,double &d4)
{
....
..
}