python运行C代码64位和32位笔记2021-06-27
最近要用python写一个需求,用python写一个控制打印机设置属性的模块。
查了很多帖子,加了很多交流群,没有得到想要的答案。
于是想到python底层是c代码编辑的,C代码有实现控制打印机的功能。并且可以和其他语言对接,如:Java。
后期编写打印机控制代码给大家分享
64位系统
1.写一个c代码方法
//c语言代码,main.c
#include<stdio.h>
void hello()
{
printf("C语言代码hello()方法");
}
2.使用gcc编译器编译C代码为64位动态库文件:
#这是模拟控制台
C:\Users\Administrator>E: #进入E盘 这里是我的文件路径
E:\>cd E:\pythonpyqtobj
E:\pythonpyqtobj>gcc -m64 main.c -fPIC -shared -o main.dll
E:\pythonpyqtobj#此时已经生成了一个64位的main.dll文件,可以通过python调用,具体实现如下:
import ctypes
res=ctypes.cdll.LoadLibrary("./main.dll")
res.hello()
- 得到 “C语言代码hello()方法” 的输出结果
GCC编译器64位下载安装方法:
https://sourceforge.net/projects/mingw-w64/files/
1.next
2.按我这样选就行了,然后next
3.自定义文件安装目录D:\MinGW 然后next
4.配置环境变量 电脑属性->高级系统设置
5.系统属性->环境变量
6.系统变量Path->编辑,在后面追加双引号内的内容,注意“;”不要丢 “;D:\MinGW\mingw64\bin”
6,然后在命令行进入main.c文件的存放目录,执行gcc -m64 main.c -fPIC -shared -o main.dll
32位GCC下载地址https://sourceforge.net/projects/mingw/files/
32位dll生成命令(必须安装32位GCC和python32位):gcc main.c -fPIC -shared -o main.dll
否则会报错:
OSError: [WinError 193] %1 不是有效的 Win32 应用程序。