我从 C++ 项目中导出了这个方法
#define EXTERN extern "C"
#define DLL_EXPORT __declspec(dllexport)
EXTERN DLL_EXPORT unsigned int BattleManager::ProcessBattleInEntityProcess() {
....
}
使用 dumpbin 我得到了该方法的以下错误名称
?ProcessBattleInEntityProcess@BattleManager@Skill@Entity@@QAEHXZ
但是,当我在 .NET 4.5 项目中导入该方法时,我收到错误 127
nativeCallbackName = "?ProcessBattleInEntityProcess@BattleManager@Skill@Entity@@QAEHXZ";
IntPtr _procAddress = NativeAPI.GetProcAddress(_nativeCallbackDLL, nativeCallbackName);
if (_procAddress == IntPtr.Zero)
{
Console.WriteLine("NULL ADDRESS for {0}", nativeCallbackName);
Console.WriteLine(Marshal.GetLastWin32Error());
return;
}
这只是一些提取的代码,其他方法也可以。