郁闷啊,!哪位懂的帮忙看看。(关于jni)
#include "ReadCard.h "
#include "stdio.h "
#include "iostream.h "
#include "windows.h "
#include "string.h "
/*
初始化设备
函数声明int ykt_opencard (int nDeviceType,int nCom,int nBaud,char *pRegion,char *pErrmsg)
用途说明用于读取当前卡具内尚未个人化的正式卡卡号和卡类型。
参数说明详见上表
返回值0成功
-1错误,详见pErrmsg
*/
JNIEXPORT jint JNICALL Java_com_stzwsoft_chis_ReadCard_openCard
(JNIEnv *, jobject)
{
HINSTANCE hTest;
hTest=LoadLibrary( "c:\\windows\\system32\\YKTClient.dll ");
char *pRegion= "XM ";//2个字节, "XM "代表厦门地区的卡
char *pErrmsg=new char[1024];//错误信息,调用前的缓冲区应留大一些,如1024字节
//到这里是正确的,YKTClient.dll也是加载成功的。里面有个函数ykt_opencard
int flag=ykt_opencard(10,9,1,pRegion,pErrmsg);//出错
/*错误信息:Compiling...
ReadCard.cpp
D:\Program Files\Microsoft Visual Studio\MyProjects\ReadCardDll\ReadCard.cpp(24) : error C2065: 'ykt_opencard ' : undeclared identifier
Error executing cl.exe.
ReadCard.obj - 1 error(s), 0 warning(s)
*/
FreeLibrary(hTest);
return 0;
}
有谁知道为什么啊???
[解决办法]
不知道,帮你顶一下吧:)
[解决办法]
应该发到VC版块
[解决办法]
帮顶
[解决办法]
应该是链接上出了问题
1.是否有名字空间?
2.是否在调用处加了extern "C " _declspec(dllimport)....
3.YKTClient是否导出成功
[解决办法]
帮顶
[解决办法]
清理一下之前编译产生的Debug,重新编译