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

但是如何将一串字符串当做字节码流传给dll的接口呢,请看本文档的代码:

#encoding:utf-8

‘‘‘

Created on 2015年3月5日

@author: Administrator

‘‘‘

import ctypes,string

if __name__ == "__main__":

#两个字符代表一个字节的字符串码流

hexstring = ‘000c40808300000600080003404105001a00504f170a16e65b110748100bf664f01080001ff43748065805f070c040115264f01000005c0a00570220003103e5e03e11035758a6200b601404ef6523021e242ca040080402600400021f025d0104e0c1004300060064f0100000006440080064f0100183bcb000864001300060000607c0f4374806‘

hexstring_len = len(hexstring)

#接口原型:pLTEDllRnlcDecode(ubyte,uint,uint,ubyte*,ubyte,char*)

dll = ctypes.CDLL(‘LTE_DE_000_110729.dll‘)

parser = dll.LTEDllRnlcDecode

parser.argtypes = [ctypes.c_ubyte, ctypes.c_uint, ctypes.c_uint, ctypes.c_char_p, ctypes.c_uint, ctypes.c_char_p]

parser.restypes = ctypes.c_void_p

data_id = ctypes.c_ubyte()

data_id.value = 0

msg_id = ctypes.c_uint()

msg_id.value = 57612

data_len = ctypes.c_uint()

data_len.value = hexstring_len / 2

reserved = ctypes.c_uint()

reserved.value = 0

#将码流字符串按2字节转换为byte串

char_array = [‘0‘]*data_len.value

i = 0

j = 0

while i < hexstring_len:

byte = string.atoi(hexstring[i:i+2],16)

char_array[j] = chr(byte)

i = i + 2

j = j + 1

print char_array

ss = ‘‘.join(char_array)

#byte串转成接口需要的byte*

data_buffer = ctypes.c_char_p()

data_buffer.value = ss

#     for i in range(len(ss)):

#         char_array[i]=ord(ss[i])

#     print char_array

#buffer = ctypes.POINTER(ctypes.c_ubyte)

#buffer.value =

outfile = ctypes.c_char_p( )

outfile.value = "out.txt"

parser(data_id, msg_id, data_len,data_buffer,reserved,outfile)

时间: 2024-11-07 14:05:33

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

windows下python web开发环境的搭建

windows下python web开发环境: python2.7,django1.5.1,eclipse4.3.2,pydev3.4.1 一. python环境安装 https://www.python.org/ftp/python/2.7/python-2.7.amd64.msi 不多说,装完后把C:\Python27加入到path环境变量里. 然后就溜溜python,看看version啦.OK,next step. 二. python web开发框架django安装 django是一个采用

Windows 下Python操作MySQL

1.环境要求(Win7 X64): python 2.7, MySQL-python-1.2.3.win-amd64-py2.7 :http://www.codegood.com/download/11/  (有需要32位的在这个地方下载https://pypi.python.org/pypi/MySQL-python) 注意:请看清楚自己的电脑位数,如果64位的系统使用32位的安装包会报如下错误: ImportError: DLL load failed: %1 不是有效的 Win32 应用程

最实用windows 下python+numpy安装(转载)

最实用windows 下python+numpy安装 如题,今天兜兜转转找了很多网站帖子,一个个环节击破,最后装好费了不少时间. 希望这个帖子能帮助有需要的人,教你一篇帖子搞定python+numpy,节约科研时间. 水平有限,难免存在不足,敬请指正. *******************python安装**************************************************** step1:官网下载安装包: https://www.python.org/ 我下载的

windows下python脚本程序的运行

c:\python33\python.exe c:\python33\trycoding.py windows下python脚本程序的运行,布布扣,bubuko.com

windows下python配置numpy、matplotlib、scipy

这两天对Python进行了研究,并且配置了numpy.matplotlib以及scipy.现对基本概念以及配置步骤介绍: 基本概念: Python (英语发音:/?pa?θ?n/), 是一种面向对象.解释型计算机程序设计语言.专用的科学计算扩展库很多,例如如下3个十分经典的科学计算扩展库:NumPy.SciPy和matplotlib,它们分别为Python提供了快速数组处理.数值运算以及绘图功能. <python科学计算>这本书中对Python介绍得很是详细,推荐下.电子版下载链接http:/

windows下 Python 安装包的配置

1.下载安装 Pythonpython-2.7.2.msi  http://www.python.org/download/如下载 Python 2.7.2,安装目录为 C:\Python27 2.添加环境变量path = C:\Python27此步骤可实现在命令行下,不用进入 Python 目录即可执行 python.exe 3.下载 setuptools 注意对应 Python 的版本,完成后运行 exe 即可完成安装 setuptools-0.6c11.win32-py2.7.exehtt

windows下Python打开包含中文路径名文件

windows使用gbx(gb2312,gbk,gb18030我也不知道是哪个)对文件名及文件路径进行编码保存.打开文件的函数中使用诸如open(filename.encode('gbk'))可以很好的解决. #coding:utf8 if __name__ == '__main__': srcfile = r"D:/测试路径/测试文件.txt" f = open(srcfile.decode('utf8').encode('gbk')) for text in f.readlines

windows 下 python 在安装模块的时候出现”unable to find vcvarsall.bat“如何解决?

最近打算用python,写一个链接linux,执行命令并获取的数据的小工具. 在安装SSH模块时,出现错误了,“unable to find vcvarsall.bat”,在网上搜索到了一个解决方案,参考地址:http://www.crifan.com/python_mmseg_error_unable_to_find_vcvarsall_bat/ Python 2.7 会搜索 Visual Studio 2008.如果你电脑上没有这个版本的话,比如只有:1.Visual Studio 2010

python学习:Windows 下 Python easy_install 的安装

Windows 下 Python easy_install 的安装 下载安装python安装工具下载地址:http://pypi.python.org/pypi/setuptools 可以找到正确的版本进行下载.win7 32位可以下载setuptools-0.6c11.win32-py2.7.exe .注意:win7 64位必须使用ez_setup.py进行安装.方法是下载ez_setup.py后,在cmd下执行 python ez_setup.py,即可自动安装setuptools.目前没有