包装C++;使用DllImport时,C#中的参考参数
我试图用C++代码包装一个具有引用参数的C++函数。 我的C#包装器类包装C++;使用DllImport时,C#中的参考参数,c#,c++,wrapper,pass-by-reference,dllimport,C#,C++,Wrapper,Pass By Reference,Dllimport,我试图用C++代码包装一个具有引用参数的C++函数。 我的C#包装器类 [DllImport(TestCppDLL.dll)] public static extern void foo(out int a, out int b, out double c); public void main() { int a; int b; double c; this.foo(out a, out b, out c); Console.WriteLine(a +
[DllImport(TestCppDLL.dll)]
public static extern void foo(out int a, out int b, out double c);
public void main()
{
int a;
int b;
double c;
this.foo(out a, out b, out c);
Console.WriteLine(a + b + c);
}
和我的C++代码是
extern void foo(int &a, int &b, double &c)
{
a = 1;
b = 2;
c = 3;
}
因此,我希望输出为“123”,但得到“000”。如何包装C++引用参数?< /p>
预先谢谢,
你的C++代码返回一个双倍,但是你的C代码声明函数有空返回值。 您还可能有呼叫约定不匹配。C++默认为CDDEL,C默认为STDCLAN.否则就可以了。Oops,返回类型只是一个输入错误。但我会检查一下惯例的错误。