cdll与windll

库的本质就是一个打包好的代码包,一般分为静态(.lib .a)和动态(.dll .so)。静态库在主程序编译时就会被一并编译到最终的可执行文件中,然而python并没有编译这个过程,python主要使用的是动态库,即在运行时再去库里找内容。

gcc -fPIC -shared -o libsource.so source.c
其中-shared代表这是动态库,-fPIC使得位置独立,如果程序本来就是独立的话会有警告,无视即可) -o指定了输出文件,改成dll后缀一样可以用。

#ifdef _MSC_VER
        #define DLL_EXPORT __declspec(dllexport) 
#else
        #define DLL_EXPORT
#endif

extern "C" DLL_EXPORT int function()
  • 参考
    • 浅谈python中使用C/C++:ctypes - FSOL的文章 - 知乎
    • 聊聊Python ctypes 模块 - Jerry Jho的文章 - 知乎
    • Python调用ctypes使用C函数printf的方法 - 路上的你的文章 - 知乎
    • cdll和windll的差别

你可能感兴趣的:(cdll与windll)