C++ 関数を呼び出す C# コードがあります。
C++ 関数は、ポインターで渡されたバッファーを埋める必要があります。ただし、配列は空を返します。
インポート宣言は次のとおりです。
[DllImport("ProjectLogicInterface", EntryPoint = "FillArr", CallingConvention = CallingConvention.Cdecl)]
public static extern UInt32 FillArr(char[] arr);
簡略化してハードコードされた値を入力した後のコードは次のようになります。
C# のコード:
char[] arr= new char[10];
ret = LogicInterface.FillArr(arr);
C++ コード:
bool FillArr(char* arr)
{
int length=10;
for(int i = 0; i < length; i++)
{
arr[i] = 3; //replaced with some hard coded value
}
return true;
}
ただし、配列は空のままです。
助言がありますか?