6

以下のc++コード行をctypes pythonに変換するのを手伝ってください:

Ret = openFcn(&Handle, "C:\\Config.xml");

以下は、それぞれの宣言です。

typedef uint16_t (* OpenDLLFcnP)(void **, const char *);
OpenDLLFcnP openFcn = NULL;
openFcn = (OpenDLLFcnP) myLibrary.resolve("Open");
void *Handle = NULL;
4

1 に答える 1

5

myLibrary.resolve未定義ですが、必要な(テストされていない)一般的なコードは次のとおりです。

import ctypes
dll = ctypes.CDLL('your.dll')
Open = dll.Open
Open.argtypes = [ctypes.POINTER(ctypes.c_void_p),ctypes.c_char_p]
Open.restype = ctypes.c_uint16
Handle = ctypes.c_void_p()
result = Open(ctypes.byref(Handle),'c:\\Config.xml')

これは、呼び出したいyour.dll関数で名前が付けられた DLL があることを前提としています。Open

于 2013-09-23T15:55:27.927 に答える