Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
包装C++;使用DllImport时,C#中的参考参数_C#_C++_Wrapper_Pass By Reference_Dllimport - Fatal编程技术网

包装C++;使用DllImport时,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 +

我试图用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 + 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,返回类型只是一个输入错误。但我会检查一下惯例的错误。