原文:http://blog.csdn.net/xiuduyi/article/details/39609231

生成dll文件以及python对DLL中函数的调用(参数类型以及返回值)

工具:VS2010    python2.7 (若使用的python是64位的,生成的dll也要使用x64)

系统:win7pro 64bit

首先,dll工程的创建以及dll文件的生成:

new project-->win32 project-->next-->DLL,empty project-->finish

如果没有选择empty project,系统会自动创建几个文件。其中,dllmain.cpp是DLL应用程序的入口点。

添加Head Files(mydll.h),添加Source Files(mydll.cpp)

在头文件中:

#ifndef LIB_H
#define LIB_H
extern "C" { _declspec(dllexport)  int  add(int* x, int y);};
#endif

在mydll.cpp中:

#include "mydll.h"
int add(int* x, int y)
{
int a = (*x);
a++;

(*x) = a;
return y;
}

ctrl+F7编译之后没有问题了,就build-->build mydll,生成了mydll.lib和mydll.dll。

/××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××/

tips:

debug:调试版本,包含调试信息,不做任何优化,便于程序员调试程序。

release:发布版本,在代码量和运行速度上都做了优化,来使程序运行速度更快,便于用户使用。

/××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××/

python对dll里面函数的调用。

对于int×指针类型的int,要对in的参数做处理:

import ctypes
dlltest = ctypes.cdll.LoadLibrary('dlltest.dll')
a = ctypes.c_int(5)
print dlltest.add(ctypes.byref(a),4)
print a.value

目前的发现:byref和addressof是一样的,都是把地址传过去,对应的指针类型参数

dll.Plat_VSS_PlayVideo_V20(g_iLogHandle, aaa(d), c_int(w.winId()), byref(puiHandle), None, None, None)


python调用dll传指针参数相关推荐

  1. python调用dll函数指针_python使用ctypes库调用DLL动态链接库

    最近要使用python调用C++编译生成的DLL动态链接库,因此学习了一下ctypes库的基本使用. ctypes是一个用于Python的外部函数库,它提供C兼容的数据类型,并允许在DLL或共享库中调 ...

  2. python编程(python调用dll程序)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 很多人说python的效率比较低,主要是没有分清什么时候用python.什么时候用c.对于网络. ...

  3. 用python读取身份证信息的功能分析与实现,兼述python调用dll的方法

    背景 有这样一个需求,要求能自动读取用户的身份证信息.如果是一代身份证,这个功能恐怕只能通过图像识别的办法来解决了.不过现在二代身份证已经很普及.客户要求能读二代身份证就可以了. 现在二代身份证阅读器 ...

  4. 【DLL】clion生成.dll文件、python调用.dll文件

    最近为了生成以及调用.dll文件,踩了一些雷,记录如下 目录 1.clion中生成.dll 2.clion中测试生成的.dll文件 3.在python中调用.dll文件 [1]导入.dll [2]ct ...

  5. python和C++联合开发(python调用DLL文件)

    在开发的过程中的有的厂家提供的API,或者其他同事写的功能模块用的是C++语言,而因为我们自己菜或者懒习惯使用python脚本语言开发,这里主要讲解如何使用python调用DLL文件(windows平 ...

  6. python调用dll报错:ValueError: Procedure called with not enough arguments (4 bytes missing) or wrong call

    python调用dll报错:ValueError: Procedure called with not enough arguments (4 bytes missing) or wrong call ...

  7. python调用dll函数_从Python调用DLL函数

    我想从Python调用DLL中的函数.但我有个错误:"Attribute Error function not found" 这是我的代码:import os import cty ...

  8. Python 调用 DLL

    Python 调用 DLL 一.C++ 编写 DLL 1..hpp 头文件 // dll_test.hpp#ifdef DLL_TEST #define MY_API _declspec(ddllex ...

  9. Qt + Python + OpenCV图标替换工具 之 Python调用dll(三)

    目录 上一篇博文 程序的下载地址以及源码 Python调用dll 上一篇博文 Qt + Python + OpenCV图标替换工具 之 获取颜色及生成图片(二) https://blog.csdn.n ...

最新文章

  1. 兰州大学C语言程序设计课程作业,【兰州大学|兰州大学C语言程序设计课程作业( 五 )】语言程序设计|课程|作业-傻大方...
  2. R语言在直方图条(柱形)上添加计数(count)或者百分比(percent)标签
  3. 【Android开发】自定义ListView,使用通用适配器,并实现ListView上的每一项和每一项上的按钮等控件同时监听
  4. parquet格式_6种数据格式对比,用Jupyter+pandas高效数据分析
  5. TP-Link无线网卡一对多的桥接
  6. 如何估算代码量_没有量杯,没有称,如何估算碳水化合物?
  7. SQLAlchemy ORM教程之二:Query
  8. java调用wkhtmltopdf生成pdf文件,美观,省事
  9. 解决在Windows10没有修改hosts文件权限
  10. 【原创】如何写一个框架:步骤(下)
  11. 微信小程序初体验,入门练手项目--通讯录,后台是阿里云服务器(一)
  12. LG_3459_[POI2007]MEG-Megalopolis
  13. 【清单】语言、框架及库的官方文档、examples、tutorials
  14. 调整计算机繁体,电脑输入法是繁体怎么办?电脑输入法变成繁体的解决办法
  15. 运用nginx和阿里云解析配置二级域名 设置不同端口号
  16. Vue之生命周期mounted、activated区别及实际运用例子解析
  17. 谷歌浏览器Chrome通过命令截图整个网页,screen,通过插件生成gif图片,以及通过插件进行录屏
  18. pci配置基地址_PCI/PCIe基础——配置空间
  19. solaris 10 ipmp
  20. hbase数据库 数据存入_七个星期中的七个数据库– Hbase第二天

热门文章

  1. linux系统中建立网络白名单,Linux下设置防火墙白名单(RHEL 6和CentOS 7)的步骤
  2. idea设置java_使用IntelliJ IDEA 配置JDK(入门)
  3. Linux C编程--string h函数解析
  4. /scripts/checkkconfigsymbols.sh
  5. linux 中断机制的处理过程
  6. java获取keyvault_利用KeyVault来加强存储Azure Storage访问密钥管理
  7. html绘制圆形和弧形的代码,通过HTML5 Canvas API绘制弧线和圆形的教程
  8. html掷骰子小游戏,网页实现掷骰子小游戏
  9. android蓝牙python,Android蓝牙连接问题
  10. gradle_使用Gradle构建和应用AST转换