【发布时间】:2010-11-19 11:02:20
【问题描述】:
我正在尝试从 python 调用 dll,但遇到访问冲突。请告诉我如何在以下代码中正确使用 ctypes。 GetItems 应该返回一个看起来像这样的结构
struct ITEM
{
unsigned short id;
unsigned char i;
unsigned int c;
unsigned int f;
unsigned int p;
unsigned short e;
};
我真的只对获取 id 感兴趣,不需要其他字段。我在下面列出了我的代码,我做错了什么?感谢您的帮助。
import psutil
from ctypes import *
def _get_pid():
pid = -1
for p in psutil.process_iter():
if p.name == 'myApp.exe':
return p.pid
return pid
class MyDLL(object):
def __init__(self):
self._dll = cdll.LoadLibrary('MYDLL.dll')
self.instance = self._dll.CreateInstance(_get_pid())
@property
def access(self):
return self._dll.Access(self.instance)
def get_inventory_item(self, index):
return self._dll.GetItem(self.instance, index)
if __name__ == '__main__':
myDLL = MyDLL()
myDll.get_item(5)
【问题讨论】: