ctype调用DLL中的函数问题已经成功解决

(2005-10-12 12:56:18)

senddata.dll中的函数原型如下:

--------------------------------------------

int _stdcall SRDConnect(char *ExecName, int ShowState, RECT *Rect);#连接系统

int _stdcall SRDDisConnect();#关闭

int _stdcall SRDOpenFile(char *FileName, int *FileNo);#打开模板

int _stdcall SRDCloseFile(int FileNo);#关闭模板

python中对应函数声明如下:

------------------------------------------

hinst = ctypes.windll.LoadLibrary('f:\\mtform\\dtp\\senddata.dll')

#LoadLibrary先

srdConnect = hinst.SRDConnect

#这一步是关键,等同于C中的GetProcAddress(HInst,

#"SRDConnect"),通过名字得到函数地址(指针)

srdDisConnect = hinst.SRDDisConnect

#下面是其它的函数

srdOpenFile = hinst.SRDOpenFile

srdCloseFile = hinst.SRDCloseFile

fileno = ctypes.c_int(0)

#由于要用到一个int *,在ctype中这样处理

pfileno = ctypes.pointer(fileno)

#poionter就是把一个int变成int*

srdConnect('f:\\mtform\\dtp\\dtpw.exe',1,None)

#这里None原本是个结构在ctype中用class来代替,这里省略

srdOpenFile('f:\\mtform\\dtp\\pingan\\aaa.tpf',pfileno)

#pfileno就是一个int*

srdCloseFile(pfileno.contents)

#pointer.contents得到指针的内容

srdDisConnect()

还有其它的一些处理比如char*,数组,结构等处理,在文档中都有说明这里不再举例。

我看许多人卡壳就是不知如何得到Dll中的函数地址,昨晚我也是。奇怪的是在官方的文档中没有说明我的这种方法。文档中讲的其它方法我都试过了。

python的方便之处在于随时在命令行试。

分享:

喜欢

0

赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

c语言ctype函数指针,ctype调用DLL中的函数问题已经成功解决相关推荐

  1. php调用dll函数,[转载]matlab调用DLL中的函数

    首先,这种调用在 Matlab 的帮助文档中有说明.它的英文名称为: MATLAB Interface to Generic DLLs 从这个帮助文档,我们不难看出,整个过程为:加载 DLL ,调用相 ...

  2. 在C++中调用DLL中的函数(2)

    本文转自:http://blog.sina.com.cn/s/blog_53004b4901009h3b.html 应用程序使用DLL可以采用两种方式: 一种是隐式链接,另一种是显式链接.在使用DLL ...

  3. C#调用dll中的函数

    C#调用dll中的函数 文章分类:操作系统 文章来源:http://blog.csdn.net/strmagic/archive/2007/11/02/1863462.aspx 大家在实际工作学习C# ...

  4. 天马行空W:在C++中调用DLL中的函数

    1.dll的优点 代码复用是提高软件开发效率的重要途径.一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用.比较常见的例子是各种应用程序框架,ATL.MFC等 ...

  5. 通过GetProcAddress函数动态调用dll中地函数,是否必须通过extern C声明导出函数?(转)...

    通过GetProcAddress函数动态调用dll中的函数,是否必须通过extern "C"声明导出函数? [已结贴,结贴人:darongtou] 如题,网上搜了N多资料,一直找不 ...

  6. 如何调用 DLL 中的函数

     如何调用 DLL 中的函数 在 DLL工程中的 cpp中函数定义如下: extern "C" _declspec (dllexport ) int add(int a, ch ...

  7. 在C++中调用DLL中的函数

    1.dll的优点 代码复用是提高软件开发效率的重要途径.一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用.比较常见的例子是各种应用程序框架,ATL.MFC等 ...

  8. GetProcAddress()函数动态调用DLL中的函数,是否必须通过extern C声明导出函数?

    GetProcAddress()函数动态调用DLL中的函数,是否必须通过extern C声明导出函数? 通过GetProcAddress函数动态调用dll中的函数,是否必须通过extern " ...

  9. 如何调用DLL中的函数

    如何调用 DLL 中的函数 在 DLL工程中的 cpp中函数定义如下: extern "C" _declspec (dllexport ) int add(int a, char ...

  10. 从零开始使用InnoSteup进行程序打打包以及调用dll中的函数

    本示例涉及: 程序的打包和数字签名 InnoSetup的快速上手 以及一个产品从编译到安装的过程演示 首先,我提供一份InnoSteup的脚本文件,小伙伴们可直接使用这个脚本进行打包(不过得修改一下相 ...

最新文章

  1. debian10 apache2使用ssl
  2. MFC“未定义标识符”报错解决方法
  3. 每日一学|数据中心spine leaf网络架构
  4. chrome 插件开发心得
  5. 你的微信,到底「连接」多少人?
  6. 28、jdbc操作数据库(5)
  7. C++ using的三种使用策略以及具体的用法
  8. 六本JAVA架构书,构建科学得架构知识体系
  9. 执行DBMS_METADATA.get_ddl报ORA-39212的解决方法
  10. mongodb 3.4 安装_【云服务器Centos7.x建站】MongoDB 3.4安装、使用、错误总结
  11. 哨兵系列卫星介绍与下载教程
  12. 联想计算机如何设置bios密码,Lenovo 消费笔记本如何设置BIOS密码
  13. 工具类APP如何做ASO优化推广
  14. python之简介及入门
  15. 用 Python 给程序加个进度条,让你的程序看起来更炫酷
  16. LESS与SASS的伯与仲
  17. SEO优化的策略_网站seo策略
  18. pytorch中repeat方法
  19. nacg python证书_这个nacg证书有用吗?
  20. BPM软件_K2签约龙光地产,为集团实现“千亿目标”保驾护航_全业务流程管理专家...

热门文章

  1. 读凯文·米特尼克的黑客传奇经历
  2. 网络安全入门基础知识
  3. Java的ActiveX控件_注册ActiveX控件的几种方法 - 镜花水月 - JavaEye技术网站
  4. 初识powerpoint的计算机教案,初识ppt教案.doc
  5. 渗透测试工程师基础入门
  6. c语言程序流程图模板word,《流程图模板》word版.doc
  7. Pano2VR制作热区激活面板
  8. CCFCSP 201712-1 最小差值
  9. android timepicker分割线颜色,Android TimePicker 的使用
  10. 自定义TimePicker样式,修改时分、分割线分隔冒号的字体、颜色高度等属性