Windows系统Python直接调用C++ DLL的方法


Posted in Python onAugust 01, 2019

环境:Window 10,VS 2019, Python 2.7.12, 64bit

1,打开 VS 2019,新建C++ Windows 动态链接库工程 Example,加入下列文件,如果Python是64位的则在VS中 Solution platforms 选择 x64 编译成64位的 DLL;

Example.h

#pragma once
#ifndef CPP_EXPORTS
#define CPP_EXPORTS
#endif
#ifdef CPP_EXPORTS
#define CPP_API _declspec(dllexport)
#else 
#define CPP_API _declspec(dllimport)
#endif
#include <iostream>
using namespace std;
#ifdef __cplusplus
extern "C"
{
#endif
  CPP_API int __cdecl getInt();
  CPP_API const char* __cdecl getString();
  CPP_API void __cdecl setString(const char* str);
#ifdef __cplusplus
}
#endif

Example.cpp

#include "pch.h"
#include "Example.h"
CPP_API int __cdecl getInt()
{
  return 5;
}
CPP_API const char* __cdecl getString()
{
  return "hello";
}
CPP_API void __cdecl setString(const char* str)
{
  cout << str << endl;
}

编译,得到 Example.dll

2, 打开 Command,cd 到 Example.dll 所在目录,输入 Python2,进入python环境

>>> from ctypes import *
>>> dll = CDLL("Example.dll")
>>> print dll.getInt()
5
>>> getStr = dll.getString
>>> getStr.restype = c_char_p
>>> pChar = getStr()
>>> print c_char_p(pChar).value
hello
>>> setStr = dll.setString
>>> setStr.argtypes = [c_char_p]
>>> pStr = create_string_buffer("hello")
>>> setStr(pStr)
hello
-1043503984

总结

以上所述是小编给大家介绍的Windows系统Python直接调用C++ DLL的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
使用Python程序抓取新浪在国内的所有IP的教程
May 04 Python
python简单实现基数排序算法
May 16 Python
Python的Django框架可适配的各种数据库介绍
Jul 15 Python
详解Python编程中time模块的使用
Nov 20 Python
Python实现PS滤镜的万花筒效果示例
Jan 23 Python
Tensorflow 同时载入多个模型的实例讲解
Jul 27 Python
python调用百度语音识别api
Aug 30 Python
python3 pillow模块实现简单验证码
Oct 31 Python
实现Python与STM32通信方式
Dec 18 Python
详解python程序中的多任务
Sep 16 Python
Numpy中的数组搜索中np.where方法详细介绍
Jan 08 Python
Python一行代码实现自动发邮件功能
May 30 Python
Python CVXOPT模块安装及使用解析
Aug 01 #Python
Python Selenium 之数据驱动测试的实现
Aug 01 #Python
Python 一键获取百度网盘提取码的方法
Aug 01 #Python
Django中的静态文件管理过程解析
Aug 01 #Python
pycharm 批量修改变量名称的方法
Aug 01 #Python
python腾讯语音合成实现过程解析
Aug 01 #Python
Python空间数据处理之GDAL读写遥感图像
Aug 01 #Python
You might like
php添加文章时生成静态HTML文章的实现代码
2013/02/17 PHP
php链表用法实例分析
2015/07/09 PHP
JavaScript操作XML 使用百度RSS作为新闻源示例
2012/02/17 Javascript
验证手机号码的JS方法分享
2013/09/10 Javascript
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
Javascript中的作用域和上下文深入理解
2015/07/03 Javascript
JS判断字符串字节数并截取长度的方法
2016/03/05 Javascript
js基于cookie方式记住返回页面用法示例
2016/05/27 Javascript
node.js实现快速截图
2016/08/27 Javascript
jQuery获取select选中的option的value值实现方法
2016/08/29 Javascript
jQuery实现可拖拽3D万花筒旋转特效
2017/01/03 Javascript
AngularJs表单校验功能实例代码
2017/02/09 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
JSX在render函数中的应用详解
2019/09/04 Javascript
微信小程序wxs实现吸顶效果
2020/01/08 Javascript
python绘图库Matplotlib的安装
2014/07/03 Python
python分割文件的常用方法
2014/11/01 Python
介绍Python的Django框架中的静态资源管理器django-pipeline
2015/04/25 Python
python snownlp情感分析简易demo(分享)
2017/06/04 Python
Python编程实现正则删除命令功能
2017/08/30 Python
python读取文本中数据并转化为DataFrame的实例
2018/04/10 Python
Python单元测试简单示例
2018/07/03 Python
python中退出多层循环的方法
2018/11/27 Python
pytest中文文档之编写断言
2019/09/12 Python
pytorch GAN生成对抗网络实例
2020/01/10 Python
英国最红的高街时尚品牌:Topshop
2016/08/05 全球购物
Pam & Gela官网:美国性感前卫女装品牌
2018/07/19 全球购物
如何打造一封优秀的留学推荐信
2014/01/25 职场文书
《姥姥的剪纸》教学反思
2014/02/25 职场文书
建筑工程质量通病防治方案
2014/06/08 职场文书
公民授权委托书
2014/10/15 职场文书
兵马俑的导游词
2015/02/02 职场文书
表扬信范文
2015/05/04 职场文书
交通安全温馨提示语
2015/07/14 职场文书
三八妇女节致辞
2015/07/31 职场文书
离婚起诉书范文2016
2015/11/26 职场文书