目录
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))
社区




