vs2015开发python_VS2015 编写C++ DLL库及C++、 C#、python 调用
VS2015生成c++dll
C++ 程序调用 dll
C# 程序调用 dll
1. VS2015 生成C++dll
可以有两种方法通过_declspec(dllexport)
extern "C" __declspec(dllexport) int __stdcall add(int a, int b);嫌上面太麻烦,windows系统下可用 .def文件
其中:extern "c" 防止导出的函数名字是乱码
使用 def导出dll步骤如下:
新建Login.h
//登录接口
extern "C" int _stdcall Login(char* username, char* password);
//退出接口 无返回值
extern "C" bool _stdcall Logout();
新建Login.cpp
int _stdcall Login(char* name, char* pwd) {
}
新建模块定义文件Login.def
LIBRARY Logindll
EXPORTS
Login @ 1
Logout @ 2
Heartbeat @3
生成文件Debug 和Release下 Login.dll Login.lib
2.C++ 调用
需要3个文件 Login.h Login.dll Login.lib
根据Debug和Release 分别把三个文件拷贝到对应工程目录下
步骤:右键添加现有项 选择Login.h
右键添加现有项 选择Login.lib
在使用的地方 #include “Login.h”
直接使用函数
{
Login("user","pwd");
}
3.C# 调用
需要1个文件 Login.dll将Login.dll 拷贝到相对应的debug或release目录下
使用时代码如下
[DllImport("Logindll.dll", EntryPoint = "Login", CallingConvention = CallingConvention.StdCall)]
extern static int Login(string name,string pwd);
4. python调用
需要2个文件 Login.dll Login.lib将上面两个文件拷贝到.py文件同名目录
通过ctypes调用
注意python是x86 x64 和dll的版本保持一致
from ctypes import *
import os
CUR_PATH=os.path.dirname(__file__)
dllPath=os.path.join(CUR_PATH,"Logindll.dll")
pDll=cdll.LoadLibrary(dllPath)
pResutl= pDll.Logout()
print (pResutl)
注意:
x86 x64 debug release 库的对应关系
参考:CSDN-专业IT技术社区-登录blog.csdn.net在VS2015中用C++编写可被其它语言调用的动态库DLL - 优秀afa - 博客园www.cnblogs.com
vs2015开发python_VS2015 编写C++ DLL库及C++、 C#、python 调用相关推荐
- delphi 调用dll 整形返回值_VS2015 编写C++ DLL库及C++、 C#、python 调用
VS2015生成c++dll C++ 程序调用 dll C# 程序调用 dll 1. VS2015 生成C++dll 可以有两种方法 通过_declspec(dllexport) extern &qu ...
- python如何调用dll库中的函数_Python调用dll库接口-ctypes方法
背景 最近需要用python写个脚本程序(win10 环境),需要调用现成的dll库完成这项任务,对于一直在Linux平台上开发程序的本人来说,从没有过使用dll的经历(不得不说还是so大法好),遇到 ...
- C#调用C++编写的dll库
我用vs2008建的C++ dll类库,名字test_interopVC,和C#的CeshiVC项目 一:C++项目dll类库: 1.test_interopVC.h,主要简单的测试,所以就在一个类里 ...
- matlab将脚本导出动态库文件.dll,并被python调用
文章目录: 一.matlab将脚本生成动态库.dll文件 1.1 编写简单的脚本函数 1.2 生成dll文件 二.python调用.dll 所使用的的环境如下: 系统:windows10 matlab ...
- python调用c++动态库 linux_linux中使用boost.python调用c++动态库的方法
前言 最近开始使用 robot framework 测试c++的动态库,robot framework 是跑在 windows 上面,c++动态库是跑在远程linux主机上面.测试办法是让 robot ...
- vs2015制作供js调用的ATL组件dll库详解
ATL组件和mfc ActiveX组件都可以供网页去调用,在我其它的博客中详细讲述了ocx组件的开发方式以及在网页中如何调用,在这篇博客中将详细讲解ATL组件的开发以及在网页中的调用. 1 创建ATL ...
- 基于C#开发PLC上位机(三)—MX软件中.dll库调用尝试
目录 一.失败案例: 二.成功案例: 结论 使用控件有很多限制,总有些人不喜欢使用winform,习惯用别的工具开发界面.本文在探索一个通用的工程,添加.dll文件实现在任意C#工程中即可调用三菱提供 ...
- 基于C#进行AutoCAD二次开发初探(一)——调用dll库
自己是测绘行业,不可避免要跟CAD打交道.因为之前用C#写了一个小软件,希望能够自动调用CAD画等高线,所以想基于C#进行Autocad的二次开发.但自己在此方面真的是零基础菜鸟一只.搜了大量的资料, ...
- 怎么把dll库写成MATLAB接口,如何在Matlab中应用动态连接库接口技术
1 引言 Matlab是当前应用最为广泛的数学软件,具有强大的数值计算.数据分析处理.系统 分析.图形显示甚至符号运算等功能.利用这一完整的数学平台,用户可以快速实现十分 复杂的功能,极大地提高工程分 ...
最新文章
- 我一顿操作把电脑弄崩了!!!数据全没了!!!我该怎么办?
- 基于时空相关属性模型的公交到站时间预测算法
- 最新conda设置清华源
- 亿级数据量场景下,如何优化数据库分页查询方法?
- MVC安全:ajax表单提交切记加上AntiForgeryToken防止跨站请求伪造 (CSRF)攻击
- 【Go语言】【11】GO语言的包和函数
- 插入排序详解(Java实现)
- 公司部分断电,这些人就没法干活?
- [WPF] 托盘菜单的基本功能实现
- 整人的python代码_vbe最新整人代码
- 织梦模板修改{dede:list}标签后,可支持权重排序、flag标签功能
- 事物级别,不可重复读和幻读的区别
- win10系统文件拖拽卡顿_如何解决Win10鼠标拖动窗口有延迟?
- matlab误码率理论,QDPSK理论误码率与实际误码率matlab仿真程序
- 基于无监督深度学习的单目深度和自身运动轨迹估计的深度神经模型
- 三极管自激振荡升压电路笔记
- 微信小程序中基础入门
- 有关联想拯救者Y7000重装window10系统
- 我喜欢夜晚,黑黑的夜色带给人安全感
- 外地人如何在上海办准生证 或者 2016年准生证办理流程 不同版本
热门文章
- 安踏半年劲收超228亿 再创中国运动品牌新高
- X会员“圈养”长沙胃,盒马鲜生“有备而来”的会员制
- basler相机参数简要中文说明_你知道相机曝光模式怎么用么?6种相机曝光模式详解及应用...
- android 保存退出之前的页面_项目实战:Qt+Android模拟操作器(模拟操作app,打开,点击,输入,获取验证码等等)...
- python消费datahub_DataHub使用指南-阿里云开发者社区
- java中集合的区别_Java中的集合与集合之间的区别
- php mysql筛选查询,php-Vicidial的MySQL筛选器
- 数据库SQL语句 使用DML语言 插入数据
- python 回调函数(Callback)
- Python判断字符串是否为字母或者数字