如何在python中加载C#/ C ++ dll?

问题描述 投票:0回答:1

现在我只有一个以C#和C ++混合编写的DLL文件(C#代码在内部调用C ++ natvie代码)我知道,我想用refoctor(dnSpy)来将这个DLL文件与Python(ctypes)包装在一起在DLL中,我找到了名为s_set_server_public_key的函数。

所以我的问题是如何使用Python调用此函数? DLL已随附,您能给我一些建议吗?非常感谢!!!enter image description here

python c# c++
1个回答
0
投票
import ctypes # Load DLL into memory. hllDll = ctypes.WinDLL ("c:\\PComm\\ehlapi32.dll") # Set up prototype and parameters for the desired function call. # HLLAPI hllApiProto = ctypes.WINFUNCTYPE ( ctypes.c_int, # Return type. ctypes.c_void_p, # Parameters 1 ... ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p) # ... thru 4. hllApiParams = (1, "p1", 0), (1, "p2", 0), (1, "p3",0), (1, "p4",0), # Actually map the call ("HLLAPI(...)") to a Python name. hllApi = hllApiProto (("HLLAPI", hllDll), hllApiParams) # This is how you can actually call the DLL function. # Set up the variables and call the Python name with them. p1 = ctypes.c_int (1) p2 = ctypes.c_char_p (sessionVar) p3 = ctypes.c_int (1) p4 = ctypes.c_int (0) hllApi (ctypes.byref (p1), p2, ctypes.byref (p3), ctypes.byref (p4))

How can I use a DLL file from Python?

© www.soinside.com 2019 - 2024. All rights reserved.