python调用window dll和linux so例子

本文介绍如何使用Python的ctypes库来调用DLL和SO动态链接库,包括在Windows下调用user32.dll显示消息框,以及在Linux下调用libc.so.6打印信息。通过具体代码示例展示了跨平台的库文件调用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/usr/bin/python
# -*- coding: UTF-8 -*-
#python dll.py
import win32api
# 打开记事本程序,在后台运行,即显示记事本程序的窗口
win32api.ShellExecute(0, 'open', 'notepad.exe', '','',1)
import win32process
win32process.CreateProcess('c:\\windows\\notepad.exe', '',
None , None , 0 ,win32process. CREATE_NO_WINDOW , None , None ,
win32process.STARTUPINFO())

handle = win32process.CreateProcess('c:\\windows\\notepad.exe',
'', None , None , 0 ,win32process. CREATE_NO_WINDOW , None , None ,
win32process.STARTUPINFO())
# 使用TerminateProcess函数终止记事本程序
win32process.TerminateProcess(handle[0],0)

from ctypes import *
user32 = windll.LoadLibrary('user32.dll') # 加载动态链接库
user32.MessageBoxA(0, 'Ctypes is cool!', 'Ctypes', 0)
# 调用MessageBoxA函数.

#!/usr/bin/python
# -*- coding: UTF-8 -*-
#python so.py
from ctypes import *
libc = cdll.LoadLibrary('/lib/i386-linux-gnu/libc.so.6') # 加载动态链接库
# 调用 printf 函数.
libc.printf('Ctypes is cool! %s\n', 'Ctypes')

libc.printf('pid=%d uid=%d\n', libc.getpid(),libc.getuid())

libc.printf('time=%d\n', libc.time(0))
libc.system("ping wwww.baidu.com -c 2")

---------------------
作者:yunshouhu
来源:优快云
原文:https://blog.youkuaiyun.com/earbao/article/details/54287567
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/ExMan/p/10120687.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值