python调用c示例

目录

dll.h

main.c

Python部分:


dll.h

#ifndef _DLL_H_ #define _DLL_H_ #include <windows.h> #if BUILDING_DLL #define DLLIMPORT __declspec(dllexport) #else #define DLLIMPORT __declspec(dllimport) #endif #ifdef __cplusplus extern "C" { #endif DLLIMPORT void fun1(char code,char codename,char dd); DLLIMPORT char fun2(char dd); #ifdef __cplusplus } #endif #endif

main.c

#include "dll.h" #include <windows.h> static char rcode[15]; static char mcode[15]; void fun1(char code,char codename,char dd){ rcode[dd]=code; mcode[dd]=codename; } char fun2(char dd){ return rcode[dd]; } BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved) { switch(fdwReason) { case DLL_PROCESS_ATTACH: { break; } case DLL_PROCESS_DETACH: { break; } case DLL_THREAD_ATTACH: { break; } case DLL_THREAD_DETACH: { break; } } return TRUE; }

Python部分:

import ctypes d = ctypes.CDLL("./项目1.dll") d.fun1.argtypes = (ctypes.c_char, ctypes.c_char, ctypes.c_char) d.fun1.restype = None d.fun2.argtypes = (ctypes.c_char,) d.fun2.restype = ctypes.c_char t = 0 c1 = b'g' c2 = b'9' d.fun1(c1, c2, t) res = d.fun2(t) print(str(res))

社区