使用python2.7中ctypes库调用windows下的dll

时间:2022-03-28 16:14:21

          最近使用python去调C库!网上有许多调用的办法。自己使用的是

         ibdata = ctypes.windll.LoadLibrary('LYCameraNew.dll')(库是用vc编译的动态链接库)
         libdata.TS_LPR_Tree_Jiekou(buf.sendbuf,pos)

(参数是一个数组,换成结构体应该也可以但是必须用以下方式声明和c中一样的结构)           

        class buf_struct(Structure):
              _fields_=[('sendbuf',c_int32*25)]

       但是再调试时报错      WindowsError: exception: access violation reading 0x00000CCC 类似于这样

       纠结了我好久,其实这不是调用不成功这是因为你写的程序出现的段错误所以非常报类似于这样的错误

      调试方法:因为是python调C,所以不会看到库的打印,你必须在你调的程序中加入把调试信息写入文件,自己调日志去看应该就能查出问题

      当然也可以使用一些IDE工具,但是我没尝试过不知道行不行。