【发布时间】:2011-06-16 15:08:21
【问题描述】:
我有一个C# dll。代码如下:
public class Calculate
{
public static int GetResult(int arg1, int arg2)
{
return arg1 + arg2;
}
public static string GetResult(string arg1, string arg2)
{
return arg1 + " " + arg2;
}
public static float GetResult(float arg1, float arg2)
{
return arg1 + arg2;
}
public Calculate()
{
}
}
现在,我打算以这种方式从C++ 调用这个dll。
[DllImport("CalculationC.dll",EntryPoint="Calculate", CallingConvention=CallingConvention::ThisCall)]
extern void Calculate();
[DllImport("CalculationC.dll",EntryPoint="GetResult", CallingConvention=CallingConvention::ThisCall)]
extern int GetResult(int arg1, int arg2);
这里是调用GetResult的函数
private: System::Void CalculateResult(int arg1, int arg2)
{
int rez=0;
//Call C++ function from dll
Calculate calculate=new Calculate();
rez=GetResult(arg1,arg2);
}
我收到错误消息:“语法错误:标识符‘计算’”。 有人可以帮我解决这个可怕的错误吗?
【问题讨论】:
-
如果您使用的是 c++ CLI,为什么不直接引用 c# 程序集呢? DllImport 旨在允许您从托管代码中调用非托管 dll。
-
我对 Visual Studio C++ 有点困惑。您能否建议我如何在 VS2010 C++ 项目中正确添加对我的 dll 的引用。我尝试使用 Assembly.LoadFile 没有任何成功。
-
您好像忘记接受答案了
标签: c# dll interop c++-cli dllimport