1
我有一個函數在C++寫成:如何將C#double []傳遞給需要常量double * pArr的C++函數? C++,C#
MyFunc(const double* pArray, int length);
我需要非恆定數組傳遞到其中:當我做到這
//C#
double[] myDoubleArray = new double[] { 1, 2, 3, 4, 5 };
MyFunc(myDoubleArray, 5);
程序被打破。
編輯:
//C# declaration
[DllImport(@"RTATMATHLIB.dll", EntryPoint = "[email protected]@[email protected]")]
public static extern double MyFunc(double[] data, int length);
//C# usage
public static double MyFunc(double[] data)
{
return MyFunc(data, data.Length);
}
//C++ export
__declspec(dllexport) double MyFunc(const double* data, int length);
//C++ signature
double MyFunc(const double* data, int length)
{
return 0; //does not quite matter what it returns...
}
您能向我們展示您在C#中的MyFunc聲明嗎?另外,什麼意思是「程序正在破壞」?你會得到一個編譯器錯誤/運行時錯誤/意外結果? – dtb
你可以發佈Import屬性和MyFunc簽名嗎? –
已更新爲代碼。 –