Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Wangarad 02. 03. 2021, 15:29:39
-
Zdravim.
Ako nacitat funkciu s dll ktora ma nazov funkcie int __cdecl Initialise(int,unsigned char,wchar_t *)
?
Tento vysledok som dostal ked som sa na to pozeral cez DLL Export Viewer. V pythone to nie je mozne.
from ctypes import *
import os
output_path = os.path.dirname(__file__)
USB_dongle_patch = os.path.join(output_path, 'XYZ_dll.dll')
USB_dongle = cdll.LoadLibrary(USB_dongle_patch)
test = 0
Dongle_ID = USB_dongle.Initialise()
print(Dongle_ID)
neviem sa dopatrat ako to pouzit funkciu s toho DLL a zavolat ju skz entry_point.
Od vyvojara som dostal toto [DllImport("XYZ_dll.dll", EntryPoint = "?Initialise@@YAHHEPA_W@Z", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode)]
public static extern ReturnCode Initialise(bool enableLogging, uint oemID, String registrationKeyFilePathAndName);
ale netusim ako to vyuzit v pythone
-
Autor vám zjevně dal ukázku importu DLL (a její funkce) pro C#.
Pro Python zkuste mrknout na toto Přetečení zásobníku:
https://stackoverflow.com/questions/252417/how-can-i-use-a-dll-file-from-python
-
Něco jako toto. Přečti si dokumentaci.
dll = cdll.LoadLibrary(path)
Initialise = getattr(dll, "?Initialise@@YAHHEPA_W@Z")
Initialise.argtypes = [c_uint, c_uint, c_wchar_p]
Initialise.restype = c_int
..
Initialise(enableLogging, oemID, registrationKeyFilePathAndName)