python呼叫dll, 複雜結構體做引數。

2021-06-23 03:02:29 字數 626 閱讀 4869

最初嘗試 繼承ctypes.structure。本地的是4個位元組的對齊,python中用class方式無法指定對齊方式,只能按照預設的對齊,正常的int,double,double 需要24 個位元組,而我本地20個位元組。 失敗。

最後嘗試用 struct.pack 打包,成功。 哈哈哈

本地結構體如下:

//star

#pragma pack(4)

typedef struct taggeodatum

geodatum;

typedef struct tagcoorsystem***

coorsystem***;

#pragma pack()

//end

需要給本地dll傳遞   coorsystem*** 指標。

借鑑「python **如下:

# star

ss = struct.pack("=idd", 0x01000000, 6378137.23, 245.365);   

ss1 = struct.pack("=20siiif",ss, 0x00020000, 108, 36,500000.0);

# end

此處 ss1 即可代表 coorsystem**** 傳遞了

python呼叫dll方法

在python中呼叫dll檔案中的介面比較簡單,例項 如下 如我們有乙個test.dll檔案,內部定義如下 extern c 在python中我們可以用以下兩種方式載入1.import ctypes dll ctypes.windll.loadlibrary test.dll 2.import ct...

python呼叫dll方法

在python中呼叫dll檔案中的介面比較簡單,例項 如下 如我們有乙個test.dll檔案,內部定義如下 extern c 在python中我們可以用以下兩種方式載入1.import ctypes dll ctypes.windll.loadlibrary test.dll 2.import ct...

python呼叫dll詳解

參考鏈結 windows安裝mingw w64教程 公司業務需要,讓我用python呼叫領導寫好的dll庫,經過一段時間的研究,終於呼叫成功,特此來記錄一下過程 開發環境win10 python3.6.8 64位 安裝這個的目的是生成dll檔案用,參考位址在上面,講一下注意的點。安裝的時候versi...