我正在将Java绑定编写到闭源数据采集库(用C编写),该库设置DMA并与PC上安装的PCIe卡接口。
C库具有简单的初始化功能。如果没有错误,则返回0:
int InitPanel();
当我在C ++项目中调用该函数时,它的工作正常。
int main()
{
// errorCode is 0 after this function call.
int errorCode = InitPanel();
std::cout << "ErrorCode: " << errorCode << std::endl;
}
所以我把C ++项目变成了一个与该函数有JNI绑定的DLL,所以我可以用Java调用它:
JNIEXPORT jint JNICALL Java_com_DataAcquisition_Init(JNIEnv* env, jclass cla)
{
return InitPanel();
}
Java在调用该函数时没有问题,但由于某些原因,InitPanel在从Java调用时返回错误代码。错误是无用的&#34;无法初始化面板&#34;。
还有什么其他可能的东西?