我正在使用Python通過comtypes模塊的第三方C++庫(通過COM導出typelib)。通過Python使用COM接口初始化OUT參數comtypes庫
其中一個可用的呼叫定義了一個OUT參數,像這樣:
COMMETHOD([helpstring(u'method GetPacket')], HRESULT, 'GetPacket',
(['in'], comtypes.gen._00020430_0000_0000_C000_000000000046_0_2_0.GUID, 'guid'),
(['in'], c_int, 'lSize'),
(['out'], POINTER(c_ubyte), 'pData')),
的C++由庫的作者提供的示例代碼初始化pData
是長度lSize
的字節數組調用GetPacket()
,像這樣之前:
pPacket = new BYTE[lSize];
HRESULT hr = pData->GetPacket(guid, lSize, pPacket);
然而,comtypes庫Python沒有提供一種方式來傳遞一個初始值pData
- 而且,在調用庫沒有初始值時,INTE rpreter及時segfaults。
是否可以與來自Python的該庫進行互操作 - 理想情況下,從comtypes
?
我很努力地在我的python應用程序中使用comtype實現PortableDevice COM API,並陷入了無法將正確的參數傳遞給COM方法的地方。 @acelent,你可以請傳遞你的聯繫方式......我需要像你這樣的專家的有償諮詢。 –
@NilayAnand,我不能那樣做,我很抱歉。每當我有一段時間,我都會看看與Python和COM相關的兩個問題,但對於這種支持,您應該問問comtypes作者或維護者。 – acelent