10
我有一個C#
dll。代碼如下:從C++/CLI調用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, – santiagoIT 2011-01-27 15:18:49
我有點困惑於Visual Studio C++。我的DLL正確地在VS2010 C++項目中,我用Assembly.LoadFile嘗試了沒有任何成功。 – 2011-01-27 15:24:51