В проекте все о рукопожатии Cpp с java. Для этого я использую JNI, я сделал все необходимые настройки, чтобы проект Cpp генерировал заголовок в папке src проекта Cpp, создавал файл ABC.h и файл abc.Cpp. Когда я заполняю файл abc.cpp, он показывает, что компиляция ошибки не удалась из-за p.thread, такой каталог не найден, если я удаляю этот заголовочный файл P.thread, он показывает, что ABC.h не найден, а файл ABC.h находится в той же папке, и мы включить в наш файл Cpp
пожалуйста, помогите мне, как решить эту проблему, я новичок в JNI
ниже прикрепленный файл PNG покажет вам детали
ERROR ON ECLIPSE CONSOLE//////////////////////////////////////////
00:31:21 **** Incremental Build of configuration Default for project SyntacJNI ****
Info: Internal Builder is used for build
g++ "-IC:\\Program Files\\Java\\jdk1.7.0_21\\include\\win32" "-IC:\\Program Files\\Java\\jdk1.7.0_21\\include" -O2 -g -Wall -c -fmessage-length=0 -o "src\\abc
.o" "..\\src\\abc.cpp"..\src\abc.cpp:10:21: fatal error:abc.h: No such file or directory
#include <pthread.h>
^
compilation terminated.
00:31:21 Build Finished (took 189ms)
///////////////////////////abc.cpp//////////////CODE Snippet////////////////////////
#include <fstream>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <string.h>
#include <windows.h>
#include <SyntacInterface.h>
#include <org_syntec_ivb_jni_DeviceCommunicationController.h>
using namespace std;
// An unsigned char can store 1 Bytes (8bits) of data (0-255)
typedef unsigned char BYTE;
// Global Var
bool gLive_View = true;
// Get the size of a file
#include <stdlib.h>
ULONG RcvdBytes;
volatile bool keepRunning = false;
volatile bool modeFlag = true;
static HANDLE hThread = NULL;
int compstr = 0xFF000F00;
long int count = 0;
static void run();
static void end();
static DWORD WINAPI ThreadProc(LPVOID lpParam);
static ULONG BuffSizeLive = 81408;
//CRITICAL_SECTION critical;
int got = 0;
static void run() {
DWORD dummy;
hThread = CreateThread(NULL, 0, ThreadProc, NULL, 0, &dummy);
}
static void end() {
keepRunning = false;
CloseHandle(hThread);
}
bool fexists(const char *filename) {
ifstream ifile(filename);
return ifile.good();
}
static DWORD WINAPI ThreadProc(LPVOID lpParam) {
while (keepRunning) {
BuffSizeLive = 327680;
UCHAR* Buff = (UCHAR*) malloc(sizeof(UCHAR) * BuffSizeLive);
ULONG RcvdBytes;
RcvdBytes = abc_GetCapture(Buff, BuffSizeLive);
if (RcvdBytes == 327680 || RcvdBytes == 81408) {
Syntac_WriteToBinaryFile(Buff,
"C:/listenDir/Capture_Mod1.BIN", RcvdBytes);
}
free(Buff);
cout << "got the frame stream " << got;
}
return 0;
}][1]
Задача ещё не решена.