zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Python调用VC++的动态链接库(DLL)

PythonC++ 调用 dll 动态链接库
2023-06-13 09:14:02 时间
1.首先VC++的DLL的导出函数定义成标准C的导出函数:
复制代码代码如下:

#ifdefLRDLLTEST_EXPORTS
#defineLRDLLTEST_API__declspec(dllexport)
#else
#defineLRDLLTEST_API__declspec(dllimport)
#endif

extern"C"LRDLLTEST_APIintSum(inta,intb);
extern"C"LRDLLTEST_APIvoidGetString(char*pChar);

//a+b
LRDLLTEST_APIintSum(inta,intb)
{
returna+b;
}

//Getastring
LRDLLTEST_APIvoidGetString(char*pChar)
{
strcpy(pChar,"HelloDLL");
}


2.Python中调用如下:
复制代码代码如下:

fromctypesimport*

fileName="LRDllTest.dll"
func=cdll.LoadLibrary(fileName)
str=create_string_buffer(20)
n=func.Sum(2,3)
func.GetString(str)

printn
printstr.raw

关于C语言中的一些参数类型详见:http://www.python.org/doc/2.5/lib/node454.html

3.输出结果:
5
HelloDLL