c++ c# java 调用 c++ 写的dll
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的更多相关文章
- 【转载】java调用C++写的DLL
用java调用C++写的DLL一直以来都是一个比较麻烦但又很常见的问题. 我们知道,使用 JNI 调用 .dll/.so 共享类库是非常非常麻烦和痛苦的. 如果有一个现有的 .dll/.so 文件,如 ...
- 通过COM组件方式实现java调用C#写的DLL文件
转自这里 最近一段时间单位在做一个Web项目,工程师用JAVA语言,需要公用人员信息,统一用户名和密码,原有的平台中是用C#语言开发的,在网上查找解决方法,通过JAVA调用C#的DLL文件实现.网上资 ...
- 通过COM组件方式实现java调用C#写的DLL文件 转
最近一段时间单位在做一个Web项目,工程师用JAVA语言,需要公用人员信息,统一用户名和密码,原有的平台中是用C#语言开发的,在网上查找解决方法,通过JAVA调用C#的DLL文件实现.网上资料很多,自 ...
- 实现通过COM组件方式实现java调用C#写的DLL文件的完整demo
最近因为工作需要,客户那边工程师使用的是JAVA语言开发的程序,我们这边平台中是用C#语言开发的,因为有些操作必须统一,所以我在网上查找解决方法,自己也实践过,在这里做个笔记吧,分享一下. 声明:下面 ...
- c++调用c#写的DLL
c++调用c#写的DLL: 此文章演示了建立c#的dll: c++建立工程,引入dll: 不能解决的问题: 指定dll的路径,在代码里面直接写 #using "xxx.dll" 必 ...
- QT调用C#写的Dll
参见: https://blog.csdn.net/weixin_42420155/article/details/81060945 C#写的dll是没有dllMain入口函数的,是一种中间语言,需要 ...
- Delphi7程序调用C#写的DLL解决办法(转)
近来,因工作需要,必须解决Delphi7写的主程序调用C#写的dll的问题.在网上一番搜索,又经过种种试验,最终证明有以下两种方法可行: 编写C#dll的方法都一样,首先在vs2005中创建一个 ...
- 发现个delphi调用vc写的Dll中包括pchar參数报错奇怪现象
发现个delphi调用vc写的Dll中包括pchar參数奇怪现象 procedure中的第一行语句不能直接调用DLL的函数,否则会执行报错,在之前随意加上条语句就不报错了奇怪! vc的DLL源代码地址 ...
- Delphi7程序调用C#写的DLL解决办法
近来,因工作需要,必须解决Delphi7写的主程序调用C#写的dll的问题.在网上一番搜索,又经过种种试验,最终证明有以下两种方法可行: 编写C#dll的方法都一样,首先在vs2005中创建一 ...
随机推荐
- jdbc数据源配置
initCtx.lookup("java:comp/env") 在 容器的conf/ xxxconf.xml http://yuxiatongzhi.iteye.com/blog/ ...
- shell条件判断中-a至-z的含义
[ -a file ] ------- 如果file存在,返回值为真. [ -b file ] ------- 如果file存在且为块特殊文件,返回值为真. [ -c file ] ------- 如 ...
- <网页web工作面试题>
磨刀不误砍柴工,在百忙之余的中午休息时,我录入一下我的面试题,把基础的知识重新温故,稳固! 1.块级元素和行内元素都有哪些? 答:块级元素:div,form,fildset等 行内元素:hr,p,fo ...
- Unity3D 动画回调方法
最近发现很多coder.在用Unity开发游戏的时候都需要一个需求就是..动画播到某一帧就要干什么事情.而且希望能得到回调. 在unity里面的window菜单有个.Animation工具.打开它.然 ...
- AX 2012 在Grid 中添加image标识状态
refer to :http://kiwiaxguy.blogspot.hk/2013/10/displaying-image-on-form-grid-in.html
- 好用的一个从SharePoint导出小工具
1. 输入 Site Url(Site Collection), 然后点"load"按钮 2.选择Web后,点选需导出的文档库,然后点"Next"按钮 ...
- TableViewCell,TableView,UITableViewCell
这次的学习是在Navigation-based Application模板中,用RootViewController class设置操作方法,使用UITableView的属性值.在导航控制器控件为程序 ...
- JAVA Socket 编程学习笔记(一)
1. Socket 通信简介及模型 Java Socket 可实现客户端--服务器间的双向实时通信.java.net包中定义的两个类socket和ServerSocket,分别用来实现双向连接的cli ...
- codis安装手册
本文属原创,转载请注明此信息:http://www.cnblogs.com/robinjava77/p/5465150.html (Robin) codis交流群 240361424 感谢群里各位群 ...
- 解决json日期格式问题的3种方法
这篇文章主要介绍了解决json日期格式问题的3种方法 ,需要的朋友可以参考下 开发中有时候需要从服务器端返回json格式的数据,在后台代码中如果有DateTime类型的数据使用系统自带的工具类序列化后 ...