前言
Python与C语言联合编程时,使用python调用dll库是很常见的情况,因为可以通过将常用函数或复杂函数封装成C语言提高效率,但如何调试是一个问题。
本文环境:VS 2013 Ultimate + Pycharm 2017 Community
正文
1.编写dll文件
新建VS项目,选择“Win32控制台应用程序”或“Win32项目”(甚至“空项目”)都可以,在向导中选择“DLL”。我个人是勾选“空项目”以及关闭“安全开发生命周期(SDL)检查”,减少不必要的麻烦。
#define EXPORT __declspec(dllexport)
在一开始可以会加这样一个宏定义来方便以后的书写,这样在需要外部调用的函数前加EXPORT即可。
2.编译一次dll文件
与普通程序编译步骤相似,生成解决方案即可。
只有生成dll文件之后,其他程序如pycharm才能调用这个文件,才能开始调试过程,因此需要先编译一次,在Debug或Release目录下得到dll文件,同时还有pdb文件等(若是x64平台编译,则还有一个x64上级目录)。
注:根据需要应更改vs编译平台配置或更换python版本,因为64位python无法直接调用32位dll,32位python也无法直接调用64位dll,即vs编译平台版本应与python版本对应。在“配置管理器”中可以新建x64编译平台: