0

我从 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;
 }

这只是一些提取的代码,其他方法也可以。

4

0 回答 0