VS2010创建DLL,Python调用及PyInstaller打包成EXE

需积分: 48 4 下载量 79 浏览量 更新于2024-09-03 收藏 940KB DOC 举报
"该资源讲述了如何在VS2010中创建DLL文件,并使用Python进行调用,最后通过PyInstaller将其打包成独立的可执行文件(exe)。在过程中遇到了一些问题,如模块找不到、32位与64位兼容性问题等,并提供了相应的解决方案。" 在开发软件时,有时我们需要创建动态链接库(DLL)来实现特定功能,然后在其他程序中调用这些功能。本示例展示了如何使用Visual Studio 2010(VS2010)创建一个简单的DLL项目。首先,在VS2010中新建一个DLL空项目,然后添加一个新的.cpp源文件,编写计算两数之和的函数`sum`。为了使DLL能在其他程序中被正确加载,我们需要在函数声明前加上`extern "C"`和`__declspec(dllexport)`,确保C++名称修饰不会影响到外部调用。 ```cpp #define DLLEXPORT extern "C" __declspec(dllexport) DLLEXPORT int sum(int a, int b) { return a + b; } ``` 完成代码编写后,编译项目,确保DLL文件成功生成。在本例中,DLL文件位于`E:\VSWorkspace\Hello2\Debug\Hello2.dll`。 接下来,使用Python调用这个DLL。由于可能会出现32位和64位版本不匹配的问题,这里建议使用32位的Python环境。在PyCharm中,导入`ctypes`模块加载DLL,并调用`sum`函数: ```python from ctypes import cdll dll = cdll.LoadLibrary(r'E:\VSWorkspace\Hello2\Debug\Hello2.dll') ret = dll.sum(1, 2) print(ret) ``` 当Python环境与DLL的位数不一致时,会报错“不是正确的WIN32API”。为了解决这个问题,需要安装与DLL匹配的32位Python版本,并在新的PyCharm环境中重新编译Python文件。 为了将Python脚本封装成独立的exe文件,需要用到PyInstaller工具。首先,确保Python环境的版本是2.7且PyInstaller版本为3.6。更新pip并安装PyInstaller: ```shell python -m pip install --upgrade pip pip install pyinstaller ``` 之后,使用PyInstaller对Python脚本进行打包: ```shell pyinstaller your_script.py ``` 打包完成后,exe文件位于dist目录下。由于exe运行时需要DLL文件,因此需要将DLL复制到与exe相同的目录。现在,可以直接运行生成的exe文件,它将调用DLL并执行相应的功能。 总结来说,这个过程涉及了DLL的创建、Python对DLL的调用以及使用PyInstaller将Python脚本转换为独立的exe程序。需要注意的是,确保所有组件(Python、DLL、PyInstaller)的位数兼容,以及正确配置环境变量和路径,才能使程序顺利运行。