JNIを作成するために "g ++"を実行すると、 "型名を指定しません"というエラーが発生します。'BYTE'はタイプに名前を付けません。 'BOOL'は宣言されていません
g++ -shared -o finger.dll FingerPrintJNI.c
次は、ヘッダーファイルは次のようになりますエラーメッセージ
In file included from FingerPrintJNI.c:4:0:
IMM64.h:21:2: error: 'BYTE' does not name a type
BYTE Data[MAX_FEATUREVECT_LEN];
^~~~
IMM64.h:26:2: error: 'BYTE' does not name a type
BYTE Data[MAX_INDEXINFO_LEN];
^~~~
IMM64.h:31:2: error: 'BYTE' does not name a type
BYTE Data[MAX_INDEXINFO_LEN_1];
^~~~
IMM64.h:44:2: error: 'BYTE' does not name a type
BYTE kind;
^~~~
IMM64.h:55:2: error: 'BYTE' does not name a type
BYTE kind;
^~~~
IMM64.h:73:2: error: 'BOOL' has not been declared
BOOL *bResult, unsigned int *uiMatchScore, unsigned int *uiHit, Pair_t *hCPairs = NULL);
です。 (私はセキュリティ上の理由に全体のコードを共有することはできません)
XXX_API char * __stdcall XXXXDCI_GetVer();
ここで質問です。
"BYTE"は大文字として宣言されています。 Visual Studioと関係がありますか?
ヘッダーファイルには "__stdcall"があります。ヘッダーファイルがC++であることを意味しますか?
上記のヘッダーファイルを使用してJNIを作成する必要があります。私は何をしなければならないのですか? g ++コンパイラでもできますか?またはgccコンパイラ? Visual Studioなしで?