C++如何用Dev-c++工具生成.dll文件?

我现在想测试一Java中jni的例子java这边都写好了也生成了.h头文件不知道这个dll文件时怎么生成的,用Dev-C++创建了项目到最后还是没搞定,还望高手给我指点一下。以下我把Dev-C++的工具和我生成的头文件上传到网盘了高手下载下来后给我演示下谢谢!
Dev-C++下载地址:http://yunpan.cn/Q59DwgH8bNwWe
.h的头文件下载地址:http://yunpan.cn/Q59DCumpGZyjh
大家在看看的做法哪里错了?
截图1.

C

大家帮忙快点给我说一下。c++的东西没学过但是还要测试下这个例子。没办法只有请教大家了。积分也不多。以后大家遇到Java的问题直接hi我就ok了。谢谢。

我看可能是你没有配置jni头文件的文件夹的关系。

注意我的工程,里面只有两个文件。一个是你给的h文件,一个cpp是照着你那个截图写的

首先打开工程属性

然后在工程属性的文件目录里,有一个包含文件目录

把jdk的include文件夹包含进去


然后就可以编译通过了……


但是我现在不确定它到底dll里面导出的符号是不是符合jni要求的。我虽然能耍C++但是耍不来java,我到现在也没写过一个java程序……所以这个能不能用只能靠你了……我提供几个我编译的dll,你试试看哪些可以的


devcpp那个就是这个工程编译出来的

vc2010编译的有两个,有一个导出符号是默认的,有一个导出符号是我把修饰删掉的

你试试看哪些可以用……

追问

过会我测试下。java这边很简单的额就随别写几行代码生成一个.h的头文件就 行了。不管对不对我就采纳你了。谢谢啊。如果搞不定你在帮我一下啊。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-28

缺少导入与导出的规则:

下面是代码演示:

//del.h
#include <windows.h>
#ifdef DLL2
#define DLL2 extern "C" _declspec(dllexport)
#else
#define DLL2 extern "C" _declspec(dllimport)
#endif

DLL2 void del(void*);

//del.cpp
#include "del.h"
#define DLL2

void del(void* pd)
{
free(pd);
}

这是一个简单的释放内存的函数,你可以参考一下

相似回答