参考资料:
<<jni 学习笔记>> 这篇文章里说用wingw编译dll,可是我自己一直出现 -I时无效参数,不知道什么原因 http://www.cnblogs.com/youxilua/archive/2011/09/16/2178554.html
msdn c++创建和使用动态链接库 http://msdn.microsoft.com/zh-cn/library/ms235636.aspx
1.创建项目
2.javac 生成.class
3.javah 在src目录下生成头文件
4.创建dll编译项目
5.包含jdk里面的相关要用到的文件 如 jni.h
6.把刚才编译好的头文件放进项目,编写c文件
7.编译生成dll
8.将.dll拷到项目根目录。调用它
项目结构
看到没控制台显示成功了~~
遇到的错误信息
1)错误信息: LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
原因:
解决方法:项目-属性-配置属性-清单工具-输入输出-嵌入清单 “是” 改为”否“
2)错误信息: Can't load IA 32-bit .dll on a AMD 64-bit platform
原因:vs2010生成的dll是32-bit的,我自己的电脑是64-bit的
解决方法:生成-配置管理器 创建X64的平台 ,生成的dll在**\x64\Debug中
3)错误信息: 在查找预编译头时遇到意外的文件结尾。是否忘记向源中添加“#include "StdAfx.h" ”?
原因:创建项目时勾选了预编译
解决方法:项目属性-配置属性- c/c++ -预编译头 勾选“不使用预编译头”