C++のDLLをJAVAで実行→うまく行かない。。
Java素人です。ちょっと教えてほしいです。
以下のC++は問題なく動作します。
//C++ヘッダの記述
VC_Header_API int _stdcall GET_DATA(UINT32* abcData, int* Count);
//C++の記述
UINT32* abcData;
abcData= (UINT32*)malloc(128 * 512 * 1024 * sizeof(UINT32));
int Count= 0;
return= GET_DATA(abcData, &Count); //→ 正しい値が取れる。適当な数字の羅列データ
しかしJavaでは、結果の戻り値が取れなくて。。。
//Javaの記述 (中略です)
//C++ Function name
int SET_DATA(int setData, byte[] Err);
int GET_DATA(int[] abcData, int[] Count);
byte[] Err = new byte[128];
int[] abcData= new int[100000];
int[] Count= new int[1000];
return = abcDLL.INSTANCE.GET_DATA(5555, Err); //→問題なく動作します。Errの文字コードも取れます。
return = abcDLL.INSTANCE.GET_DATA(abcData, Count); //→これを実行したとき、abcデータとCountがすべて”0”...
正しい値が入ってこないのは、abcData, Countの渡し方の問題だと思われるんですが。。。
他の関数は問題なく動作可能です。
問題ない渡し方、分かりますでしょうか?アドバイスいただきたいです。
よろしくお願いいたします。