python怎么调用c++函数,python如何调用c语言

  python怎么调用c++函数,python如何调用c语言

  

  linux版的动态库

  写个简单的C代码,test.c

  # includestdio.h

  #includestdlib.h

  char*printStr(constchar*p,constchar*q)

  {

  printf(%s ,p);

  printf(%s ,q);

  返回《djstava》;

  }通过以下命令编译成动态链接库

  gcc-fPIC-shared-olibtest。索特斯特。c相关推荐: 《Python入门教程》

  python3中调用

  要调用C库中的函数,需要用到指针这个模块

  #-*-编码:utf-8-*-

  fromctypesimport*

  handle=cdll .LoadLibrary(libtest.so )

  func=handle.printStr

  func.argtypes=(c_char_p,c_char_p)

  func.restype=c_char_p

  tmp=handle.printStr(hello ).编码( utf-8 ),世界 .编码( utf-8 ))

  print(tmp.decode(utf-8 ))程序执行结果:

  你好,世界程序解释

  func.argtypes=(c_char_p,c_char_p)

  func.restype=c_char_p这2句是分别设置参数数据类型和返回值类型,如果不进行设置,直接调用的话,参数可以正常接收,但是返回值永远是个(同国际组织)国际组织值,传入的字符串参数必须为编码( utf-8 ),否则在c库中仅会打印为首字符。

  handle=cdll .LoadLibrary(libtest.so )

  ret=handle.printStr(hello ).编码( utf-8 ),世界 .编码( utf-8 ))windows版的动态库

  可视化工作室编译dll,在需要抛出的方法前加入__declspec(dllexport),比如下面C代码:

  _ _ declspec(dll导出)unsigned intcr 32(constunsignedchar * s,unsignedintlen)

  {

  未签名的

  unsignedintcrc32val=0xffffffff

  printf(len==%dn ,len);

  for(I=0;终场我)

  crc32val=crc32_tab[(crc32val^s[i])0xff]^((crc32val8)0x00ffffff);

  返回至crc32val

  }然后打开对比X64工具命令行提示符,进入到C源码目录,分别执行以下两条命令,第一条命令是生成目标文件obj,第二天命令是链接目标文件,生成动态库。

  cl/ccrc.c

  link/dllcrc.obj至此,dll文件就生成了,它就是我们需要的动态链接库,dll的调用跟因此的方法一样。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: