我有一个带有一组函数的DLL。该DLL与“themidia”一起使用以确保其安全。
当我尝试调用函数时,C#会因函数名称而吐出错误。
[DllImport("safety.dll", CallingConvention=CallingConvention.StdCall, ExactSpelling=true)]
private static extern IntPtr _encryptLogin@8(string string_0, string string_1);
如果我删除@ 8并删除ExactSpelling = true,它只会返回一个说明没有入口点的异常。
我究竟做错了什么?
答案 0 :(得分:3)
删除“@”,并在您的属性中添加EntryPoint="_encryptLogin@8"
答案 1 :(得分:0)
作为指定EntryPoint
作为rfmodulator建议的替代方法,您可以在C ++源代码中使用extern "C"
,这将使导出的函数名称与C ++源代码中的名称相同。
C ++编译器通常会破坏函数的名称,因此您可以使用重载函数(具有相同名称的函数使用不同的参数)。