日期:2014-05-18  浏览次数:20654 次

郁闷啊,!哪位懂的帮忙看看。(关于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,重新编译