"g ++"을 실행하여 JNI를 만들 때 "유형을 지정하지 않았습니다."오류가 발생합니다. 다음'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();
다음
질문이 있습니다 (I은 보안상의 이유로 전체 코드를 공유 할 수 없습니다).
"BYTE"는 대문자로 선언되었습니다. Visual Studio와 관련이 있습니까?
헤더 파일에 "__stdcall"이 있습니다. 헤더 파일이 C++이라는 것을 의미합니까?
위의 헤더 파일을 사용하여 JNI를 작성해야합니다. 나는 무엇을해야만 하는가? g ++ 컴파일러로 할 수 있습니까? 또는 gcc 컴파일러? Visual Studio가 없으면?