私はCで関数++のように書かれている:定数double * pArrを必要とするC++関数にC#double []を渡すには? 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...
}
MyFuncの宣言をC#で表示できますか?また、「プログラムが壊れている」とはどういう意味ですか?あなたはコンパイラエラー/ランタイムエラー/予期しない結果を得ますか? – dtb
Import属性とMyFuncシグネチャを投稿できますか? –
コードで更新しました。 –