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

开发环境:mingw64位,python3.6 64位

参考博客:

mingw编译dll:

https://blog.csdn.net/liyuanbhu/article/details/42612365

python调用dll:

https://www.cnblogs.com/cnpirate/p/5939446.html

编写 dlltest.c

//dlltest.c
int Double(int x)
{
    return x * 2;
}  

编译为dll

gcc dlltest.c -shared -o dlltest.dll -Wl,--out-implib,dlltest.lib

得到lib和dll文件

在python中调用:

from ctypes import *
dll = cdll.LoadLibrary(‘DLL/dlltest.dll‘)
a=dll.Double(123)
print(type(a))
print(a)

输出:

<class ‘int‘>
246

原文地址:https://www.cnblogs.com/TQCAI/p/8878748.html

时间: 2024-10-02 00:01:35

Python调用C的DLL(动态链接库)的相关文章

Python调用C++的DLL

import os import sys from ctypes import * test = cdll.LoadLibrary('D:\Python27\py.dll') print test.Add(1, 2) test.Echo("hello dll") mypath = sys.argv[1] if not os.path.exists(mypath): print "The path %s does not exist!" % mypath sys.ex

python调用c的dll文件

这个问题研究了好久,看了n个博客,但是一直出错,主要集中在生成dll的时候,自己生成的总是不可执行,今天无意间看到了一个,发现正好可以解决我的问题,分享给大家http://blog.sina.com.cn/s/blog_62c832270101d92u.html 里面有一个没有搞懂的地方,就是CDll里面对于生成的dll的填写,我已经把它放在python目录Dlls下了,可是还要写全路径才对,此问题求解. 关于调用c++的目前没有发现什么好的办法.

python 调用C的DLL案例

前言: python不能直接调用C++只能调用纯C的DLL 此处案例是python模仿opencv的cv2包,但是用c的DLL调用   import osimport csvimport timeimport ctypesfrom ctypes import *opencv = CDLL("opencv_world310.dll") class IplTileInfo(Structure): _fields_ = [] class IplROI(Structure): _fields_

Python调用C/C++动态链接库的方法

本文以实例讲解了Python调用C/C++ DLL动态链接库的方法,具体示例如下: 示例一: 首先,在创建一个DLL工程(本例创建环境为VS 2005),头文件: //hello.h #ifdef EXPORT_HELLO_DLL #define HELLO_API __declspec(dllexport) #else #define HELLO_API __declspec(dllimport) #endif extern "C" { HELLO_API int IntAdd(in

Python调用DLL动态链接库——ctypes使用

最近要使用python调用C++编译生成的DLL动态链接库,因此学习了一下ctypes库的基本使用. ctypes是一个用于Python的外部函数库,它提供C兼容的数据类型,并允许在DLL或共享库中调用函数. 一.Python调用DLL里面的导出函数 1.VS生成dll 1.1 新建动态链接库项目 1.2 在myTest.cpp中输入以下内容: // myTest.cpp : 定义 DLL 应用程序的导出函数. // #include "stdafx.h" #define DLLEXP

用python调用C的动态链接库

暂时Python写得不好,有些东西还是用C写起来顺手,遇到这种情况怎么办呢…于是学习了一下python调用C动态链接库的方法.这样就可以将用C写好的函数提供给python使用了. 首先要将先新建个DLL工程.例如我新建了dlllearning工程,内包含example.h和example.cpp两个文件. 代码如下: 1 //example.h 2 #ifndef EXPORT_EXAMPLE_DLL 3 #define EXAMPLE_API __declspec(dllimport) 4 #

Python调用dll

Python的运行效率并不高,不过我们可以通用调用c函数或者dll来提高效率. 下面简单的写一个dll: MyDll.h 1 #ifndef MYDLL 2 #define MYDLL 3 #ifdef MY_DLL 4 #define MY_DLL extern "C" _declspec(dllimport) 5 #else 6 #define MY_DLL extern "C" _declspec(dllexport) 7 #endif 8 9 MY_DLL

windows下,python调用dll例子,展示如何传递字节码流参数到dll接口

工作上需要用python调用dll解析码流输出到文件,如何调用dll很多博客都有描述,请参考如下blog: 如何调用请参考: http://blog.csdn.net/lf8289/article/details/2322550 WinDLL和CDLL的选择,请参考: http://blog.csdn.net/jiangxuchen/article/details/8741613 传递自定义的结构,请参考: http://www.jb51.net/article/52513.htm 但是如何将一

Windows下C语言调用dll动态链接库

dll是windows下的动态链接库文件,下面记录一下在windows下如何调用C语言开发的dll动态链接库. 1.dll动态链接库的源代码 hello_dll.c #include "stdio.h" _declspec(dllexport) void test_print(char const *str) { printf("%s\n", str); } _declspec(dllexport) int test_add(int a, int b) { retu