ogre3d + vldを使用していますが、同じ問題が発生します。GetLastError()でエラーコードをデバッグしました:ERROR_PROC_NOT_FOUND、エラー127:指定されたプロシージャが見つかりませんでした。
良いことは、そのアサーションをコメントアウトして再コンパイルすると機能する( "new char [20]"でテスト)が、 "delete Ogre :: Root :: getSingletonPtr();"を呼び出すのを忘れた場合です。検出されません:(
編集:アサーションをデバッグコンソールに報告するには、次を使用できます。
// Get the *real* address of the import.
import = GetProcAddress(exportmodule, importname);
if(import == NULL){
DWORD err=GetLastError();
WCHAR buff[2048];
wcsncpy_s(buff, 2048, L"\n============================================\nImport name: ", _TRUNCATE);
int i=wcslen(buff);
int n=0;
//cast to unicode
while(importname[n]){
buff[i++]=importname[n++];
}
buff[i]=0;
wcsncat_s(buff, 2048, L"\nExport module: ", _TRUNCATE);
i=wcslen(buff);
GetModuleFileName(exportmodule,&buff[i],2048-i);
wcsncat_s(buff, 2048, L"\nError code: ", _TRUNCATE);
i=wcslen(buff);
_itow_s(err,&buff[i],2048-i,10);
wcsncat_s(buff, 2048, L"\n============================================\n", _TRUNCATE);
report(buff);
}
//assert(import != NULL); // Perhaps the named export module does not actually export the named import?
結果は次のようになります。
============================================
インポート名:CoGetMalloc
エクスポートモジュール:C:\ data \ projects \ Avenon \ trunk \ source \ .. \ build \ Avenon_d.exe
エラーコード:127
============================================
============================================
インポート名:CoTaskMemAlloc
エクスポートモジュール:C:\ data \ projects \ Avenon \ trunk \ source \ .. \ build \ Avenon_d.exe
エラーコード:127
============================================
============================================
インポート名:CoTaskMemRealloc
エクスポートモジュール:C:\ data \ projects \ Avenon \ trunk \ source \ .. \ build \ Avenon_d.exe
エラーコード:127
============================================