JNI学习资料-有图有真相 ,附件中可下载
http://cabmjckx.blog.51cto.com/665504/606751
http://www.cnblogs.com/nicholas_f/archive/2010/11/30/1892124.html
Java Native Interface wiki
官方文档
Java Native Interface Specification—Contents
开发中遇到的问题
1.自己封装DLL时,又调用了已发布的DLL,编译时会报错:
error LNK2005: _DllMain@12 already defined in xxx.OBJ 解决办法
解决方法:
1, 你只需要在工程设置里面,把
WIN32,NDEBUG,_WINDOWS,_MBCS,_USRDLL,MSGBOX_EXPORTS,_WINDLL,_AFXDLL
中的_USRDLL,删除,就可以正确编译了
参考博客:http://blog.csdn.net/yqzsl/article/details/6183428
------------------------------------
DLL中读取当前路径下的INI文件
ini文件
[ChinaPlate]
;车牌所在省份简称
Province="粤"
;最小车牌宽度
MinWidth=80
//你可以在这里读取配置文件中的信息
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];
char fname[_MAX_FNAME];
char ext[_MAX_EXT];
char CFGFileName[300];
GetModuleFileName(NULL, CFGFileName,300);
_splitpath(CFGFileName, drive, dir, fname, ext );
_makepath( CFGFileName, drive, dir, "LPKernel", "ini" );
//读取配置参数
plateConfigTh.nMinPlateWidth = GetPrivateProfileInt("ChinaPlate", "MinWidth", 1, CFGFileName);
char m_LocalProvince[10];
GetPrivateProfileString("ChinaPlate", "Province","粤",m_LocalProvince,sizeof(m_LocalProvince), CFGFileName);
--------------------------------
扩展阅读:
JNA介绍
https://github.com/twall/jna
http://blog.csdn.net/shendl/article/details/3589676