`
喧嚣求静
  • 浏览: 588512 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JNI学习资料-有图有真相

    博客分类:
  • java
 
阅读更多

 JNI学习资料-有图有真相 ,附件中可下载

 

1.java调用dll

 http://cabmjckx.blog.51cto.com/665504/606751

 

2.JNI中java类型与C/C++类型对应关系

  http://www.cnblogs.com/nicholas_f/archive/2010/11/30/1892124.html

 

3.java中引入dll

 

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

 

2.JNI 中文字符串转换乱码的处理(zz)

 

 

------------------------------------

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

android jni

Android JNI 实例  

Windows平台下如何使用Android NDK

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics