博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python天天美味(29) - 调用VC++的动态链接库(DLL)
阅读量:6902 次
发布时间:2019-06-27

本文共 764 字,大约阅读时间需要 2 分钟。

1. 首先VC++的DLL的导出函数定义成标准C的导出函数:


#
ifdef LRDLLTEST_EXPORTS
#
define LRDLLTEST_API __declspec(dllexport)
#
else
#
define LRDLLTEST_API __declspec(dllimport)
#
endif
extern 
"
C
"
 LRDLLTEST_API int Sum(int a , int b);
extern 
"
C
"
 LRDLLTEST_API void GetString(char
*
 pChar);
//
+
 b
LRDLLTEST_API int Sum(int a , int b)
{
    
return
 a 
+
 b;
}
//
Get a string
LRDLLTEST_API void GetString(char
*
 pChar)
{
    strcpy(pChar, 
"
Hello DLL
"
);
}

2. Python中调用如下:


from
 ctypes 
import
 
*
fileName
=
"
LRDllTest.dll
"
func
=
cdll.LoadLibrary(fileName)
str 
=
 create_string_buffer(
20
)
=
 func.Sum(
2
3
)
func.GetString(str)
print
 n
print
 str.raw

关于C语言中的一些参数类型详见:

3. 输出结果:


5
Hello DLL

 

  

    

 

 

 

...

本文转自CoderZh博客园博客,原文链接:http://www.cnblogs.com/coderzh/archive/2008/07/23/1249919.html,如需转载请自行联系原作者

你可能感兴趣的文章