其中C++本地代码中调用READER.DLL中函数,我预先单纯使用C++调试过,运行正常!
现在我将C++本地代码采用JNI技术封装,以供JAVA程序调用,但是出了如下错误,不知何故。
(以前我用另外一套硬件的DLL试过,这种方法是可行的)
请高手指点一下,谢谢!
//C++本地代码
hDll=LoadLibrary("Reader.dll");
typedef short (__stdcall *pOpenReader) (HANDLE *hCom, unsigned char LinkType,char *com_port);
pOpenReader OpenReader;
OpenReader=(pOpenReader)GetProcAddress(hDll,"OpenReader");
HANDLE hcom;
HANDLE *pcom=&hcom;
int iBack;
iBack=OpenReader(pcom,2,"10.21.9.58");
...
JAVA端出错提示:
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000, pid=4056, tid=3784
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_03-b07 mixed mode)
# Problematic frame:
# C 0x00000000
#
# An error report file with more information is saved as hs_err_pid4056.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
现在我将C++本地代码采用JNI技术封装,以供JAVA程序调用,但是出了如下错误,不知何故。
(以前我用另外一套硬件的DLL试过,这种方法是可行的)
请高手指点一下,谢谢!
//C++本地代码
hDll=LoadLibrary("Reader.dll");
typedef short (__stdcall *pOpenReader) (HANDLE *hCom, unsigned char LinkType,char *com_port);
pOpenReader OpenReader;
OpenReader=(pOpenReader)GetProcAddress(hDll,"OpenReader");
HANDLE hcom;
HANDLE *pcom=&hcom;
int iBack;
iBack=OpenReader(pcom,2,"10.21.9.58");
...
JAVA端出错提示:
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000, pid=4056, tid=3784
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_03-b07 mixed mode)
# Problematic frame:
# C 0x00000000
#
# An error report file with more information is saved as hs_err_pid4056.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货