• 技术文章 >后端开发 >Python教程

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

    2016-06-16 08:47:28原创810
    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);

    //a + 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)
    n = func.Sum(2, 3)
    func.GetString(str)

    print n
    print str.raw


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

    3. 输出结果:
    5
    Hello DLL
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• Python接口自动化测试必备基础之http协议详解• Python 3.11中的最佳新功能和功能修复• 实例详解Python面向对象的四大特征• Python数据分析之concat与merge函数(实例详解)• 一起聊聊Python的编码样式
    1/1

    PHP中文网