可以';t从C#调用C++函数

本文关键字:调用 C++ 函数 可以 | 更新日期: 2023-09-27 18:26:30

我有一个带有一组函数的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,它只返回一个异常,表示没有入口点。

我到底做错了什么?

可以';t从C#调用C++函数

删除"@",并在属性中添加EntryPoint="_encryptLogin@8"

除了将EntryPoint指定为rfmodulator之外,您还可以在C++源中使用extern "C",这将使导出的函数名称与它们在C++源代码中的名称相同。

C++编译器通常会破坏函数的名称,这样你就可以拥有重载的函数(具有相同名称但不同参数的函数)。