Menggunakan Fail DLL dalam Python tanpa C Wrappers
Menggunakan fail DLL dalam Python boleh dicapai dengan lancar tanpa menggunakan pembalut C tambahan. Satu pendekatan yang sangat disyorkan dan mudah ialah menggunakan ctypes.
Memperkenalkan ctypes
ctypes menyediakan modul Python asli yang memudahkan interaksi dengan perpustakaan serasi C. Ia membekalkan jenis data yang serupa dengan C (cth., int, char, void*) dan membolehkan parameter lulus mengikut nilai atau rujukan. Selain itu, ia boleh mengendalikan pengembalian jenis data tertentu.
Contoh Penggunaan
Pertimbangkan contoh berikut, berdasarkan kod sebenar (Python 2.5):
<code class="python">import ctypes # Load the DLL. hllDll = ctypes.WinDLL("c:\PComm\ehlapi32.dll") # Function prototype and parameters. hllApiProto = ctypes.WINFUNCTYPE(ctypes.c_int, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p) hllApiParams = ((1, "p1", 0), (1, "p2", 0), (1, "p3", 0), (1, "p4", 0)) # Function mapping. hllApi = hllApiProto(("HLLAPI", hllDll), hllApiParams) # Function call. 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))</code>
Dalam contoh ini, API HLL digunakan dan parameter diluluskan mengikut nilai atau rujukan (mengikut spesifikasi HLLAPI). Fungsi ini dipetakan kepada nama Python (hllApi) dan digunakan dengan pembolehubah yang diperlukan.
Kesimpulan
Dengan menggunakan ctypes dan mengikut pendekatan yang digambarkan, pembangun boleh berinteraksi dengan lancar dengan fail DLL tanpa memerlukan kod C luaran. Ini memberi mereka kuasa untuk memanfaatkan keupayaan perpustakaan ini secara langsung dari dalam skrip Python mereka.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Fail DLL dalam Python Tanpa Pembalut C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!