1. vs 中新建win32 dll 项目   testdll

添加实现文件       test.cpp

#include "stdafx.h"
#include <iostream>
using namespace std;
int Add(int plus1, int plus2)
{
int add_result = plus1 + plus2;
return add_result;
}

添加模板定义文件

LIBRARY "testdll"
EXPORTS
Add @1

编译生成 dll 文件

2.  c++  程序调用  c++ dll

新建 c++控制台 程序

copy 第一步 生成的 lib 文件 到 工程目录下

添加引用 dll 的 头文件  main.h

pragma comment(lib,"testdll.lib")
extern "C"_declspec(dllimport) int Add(int a, int b);

主文件

#include "stdafx.h"
#include <iostream>
#include "main.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cout << "aaa" << endl;
cout << Add(3,4)<< endl;
return 0;
}

编译 生成 exe 文件,运行时确保第一步生成的dll 在 exe 同目录下,或者在windows目录或者在 环境变量path指定的目录

3. c# 程序调用 c++ dll

新建 winform 或者控制台程序

添加  代码到 任意类中

[DllImport("testdll.dll", EntryPoint = "Add")]
private extern static int Add(int I_A, int I_B);

在winform中的调用方式:

MessageBox.Show(Add(3, 4).ToString());

编译 生成 exe 文件,运行时确保第一步生成的dll 在 exe 同目录下,或者在windows目录或者在 环境变量path指定的目录

4. java 调用 c++ 写的 dll

新建 java 控制台程序

添加  java文件   TestDLL.java, 声明需要引用的方法

package helloworld;

public class TestDLL
{
static
{
System.loadLibrary("javadll");
}
public native int add(int num1, int num2);
}

在此工程的 bin 目录 下 根据 声明的 java 文件 生成对应的 .h 头文件

通过javah 命令

javah -classpath . -jni helloworld.TestDLL   此时会生成  helloworld_TestDLL.h  文件

新建 c++ 的 dll 项目,将 helloworld_TestDLL.h  添加 到 项目中

将 jniport.h 文件添加到 项目中,  如果在本地找不到,可以在网上下载此文件

添加 实现文件 testDll.cpp

#include "stdafx.h"

#include "helloworld_TestDLL.h"

JNIEXPORT jint JNICALL Java_helloworld_TestDLL_add

(JNIEnv * env, jobject obj, jint num1, jint num2)

{

return num1 + num2;

}

生成dll,将此dll copy 到  java项目中的lib 文件中

在java 项目的 main 方法中调用  dll中的方法

public static void main(String[] args) {

System.out.println(new TestDLL().add(3,4));

}

运行时 ,将 dll文件copy 到jdk 的bin目录下

c++ c# java 调用 c++ 写的dll的更多相关文章

  1. 【转载】java调用C++写的DLL

    用java调用C++写的DLL一直以来都是一个比较麻烦但又很常见的问题. 我们知道,使用 JNI 调用 .dll/.so 共享类库是非常非常麻烦和痛苦的. 如果有一个现有的 .dll/.so 文件,如 ...

  2. 通过COM组件方式实现java调用C#写的DLL文件

    转自这里 最近一段时间单位在做一个Web项目,工程师用JAVA语言,需要公用人员信息,统一用户名和密码,原有的平台中是用C#语言开发的,在网上查找解决方法,通过JAVA调用C#的DLL文件实现.网上资 ...

  3. 通过COM组件方式实现java调用C#写的DLL文件 转

    最近一段时间单位在做一个Web项目,工程师用JAVA语言,需要公用人员信息,统一用户名和密码,原有的平台中是用C#语言开发的,在网上查找解决方法,通过JAVA调用C#的DLL文件实现.网上资料很多,自 ...

  4. 实现通过COM组件方式实现java调用C#写的DLL文件的完整demo

    最近因为工作需要,客户那边工程师使用的是JAVA语言开发的程序,我们这边平台中是用C#语言开发的,因为有些操作必须统一,所以我在网上查找解决方法,自己也实践过,在这里做个笔记吧,分享一下. 声明:下面 ...

  5. c++调用c#写的DLL

    c++调用c#写的DLL: 此文章演示了建立c#的dll: c++建立工程,引入dll: 不能解决的问题: 指定dll的路径,在代码里面直接写 #using "xxx.dll" 必 ...

  6. QT调用C#写的Dll

    参见: https://blog.csdn.net/weixin_42420155/article/details/81060945 C#写的dll是没有dllMain入口函数的,是一种中间语言,需要 ...

  7. Delphi7程序调用C#写的DLL解决办法(转)

    近来,因工作需要,必须解决Delphi7写的主程序调用C#写的dll的问题.在网上一番搜索,又经过种种试验,最终证明有以下两种方法可行:    编写C#dll的方法都一样,首先在vs2005中创建一个 ...

  8. 发现个delphi调用vc写的Dll中包括pchar參数报错奇怪现象

    发现个delphi调用vc写的Dll中包括pchar參数奇怪现象 procedure中的第一行语句不能直接调用DLL的函数,否则会执行报错,在之前随意加上条语句就不报错了奇怪! vc的DLL源代码地址 ...

  9. Delphi7程序调用C#写的DLL解决办法

     近来,因工作需要,必须解决Delphi7写的主程序调用C#写的dll的问题.在网上一番搜索,又经过种种试验,最终证明有以下两种方法可行:    编写C#dll的方法都一样,首先在vs2005中创建一 ...

随机推荐

  1. HDU 1394 Minimum Inversion Number(最小逆序数 线段树)

    Minimum Inversion Number [题目链接]Minimum Inversion Number [题目类型]最小逆序数 线段树 &题意: 求一个数列经过n次变换得到的数列其中的 ...

  2. 拥抱高效、拥抱 Bugtags 之来自用户的声音(三)

    小编按:这是一篇 Bugtags 用户来稿,主要是介绍了使用 Bugtags 前后对测试及解决 Bug 所带来的变化,感谢山西农业大学 - 高正炎同学对 Bugtags 的信赖和支持.小编在这里诚邀各 ...

  3. 跳过 centos部署 webpy的各种坑

    用centos部署webpy发现的各种坑: 1.python 版本: 2.中文编码: 3.web模块路径: 在命令行里输入python,能import web,但是网站错误报告一直报告没有找到web模 ...

  4. Repeater控件使用中的一些小问题

    网页上用来展示列表的数据,发现还是Repeater比GridView,DetailView之类的要灵活些,所以近期用到了就总结下遇到的一些情况,保留下来以备之后查阅,不用现问度娘了... 自己摸索的, ...

  5. 判断一个数num是否是2的幂(乐视题)

    思路“num &(num-1)==0 返回true,否者返回false.代码如下: boolean isPower(int num){ if(num<=0) return false; ...

  6. 火车采集器 帝国CMS7.2免登录发布模块

    帝国cms7.2增加了金刚模式,登录发布有难度.免登录发布模块配合火车采集器,完美解决你遇到的问题. 免登录直接获取栏目列表 通过文件内设置密码免登录发布数据 帝国cms7.2免登陆文章发布接口使用说 ...

  7. js 处理 html 标签转义 处理json中含有的ascii 编码

    function escape2Html(str) { var arrEntities = { 'lt': '<', 'gt': '>', 'nbsp': ' ', 'amp': '&am ...

  8. Manually enable Appear Offline in Lync 2013 Preview via Registry

    refer to http://www.shudnow.net/2012/09/18/manually-enable-appear-offline-in-lync-2013-preview-via-r ...

  9. FLAG_ACTIVITY_CLEAR_TOP

    看了一篇相关的文章,感觉还不错,链接http://www.cnblogs.com/lwbqqyumidi/p/3775479.html

  10. 北京易信软科信息技术有限公司 问卷调查管理系统V2.0

    北京易信软科信息技术有限公司 问卷调查管理系统V2.0 支持题目模板配置.题型模板配置.选项模板配置,报表查询功能配置 按月建表功能 运用java开发.velocity技术实现页面加载功能,高性能,高 ...