MSVC2010 に、DLL ラッパーを作成する C++ コードのセクションがあります。コードのセクションは次のようになります...
extern "C" __declspec(dllexport) DWORD myDllExportFunction()
{
return (DWORD)SomeFunction(SomeParameter);
}
また...
_declspec(dllexport) int64 _stdcall myDllExportFunction2(<someType> someParameter){
{
return new (DWORD)SomeExternalFunction(SomeParameter);
}
この dll でダンプビンを実行すると、エクスポート セクションに完全修飾関数名だけが含まれることが予想されますが、このように見えます。
_myDllExportFunction@12 = _myDllExportFunction@12
この等号がなぜそこにあるのか、それが何を意味するのかわかりません。dllをインポートするプログラムは、本来の機能を実行していないため、関数にアクセスできないと強く感じています。
十分な情報を提供するために、コンパイラとリンカーのスイッチの一部を含めました
コンパイラ オプション:
/Zi /nologo /Wall /WX- /O2 /Ob2 /Oi /Oy- /D "_WINDLL" /D "_MBCS" /D "_AFXDLL" /Gm- /EHsc /GS /fp:precise /Zc:wchar_t /Zc
リンカー オプション:
/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\....\MyProj.pdb" /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /PGD:"C:\....\MyProj.pgd" /TLBID:1 /DYNAMICBASE:NO /NXCOMPAT:NO /IMPLIB:"MyProj.lib" /MACHINE:X86 /ERRORREPORT:QUEUE
注: /IMPLIB:"MyProj.lib" -> このインポート ライブラリには、DLL に入れたい形式で DLL に入れたいすべてのエクスポートが含まれています。
プロジェクトのオプションに、これを引き起こす設定はありますか? 過去数年間に、見逃した可能性のある dllexport への変更はありましたか? 私の問題を理解するのに役立つ情報はありますか?