python 结构体 c_Python与C/C++中结构体
应用场景:
由C++提供核心接口,利用python定制前端或者用户配置
from ctypes import *
# duba scan and kill virus result structure define
class KAE_SCAN_RESULT(Structure):
_fields_ = [('nVirusNameSize', c_int),
('szVirusName', c_char*256),
('ScanStatus', c_uint32),
('ScanVirusType', c_uint32),
('ScanProcessResult', c_uint32),
('AVEngine', c_uint32),
('nVirusID', c_int),
('CleanVirusID', c_uint32),
('pvScanSign', c_uint32),
('Reserve', c_ubyte*16)]
class ENGBASE_SCAN_RESULT_EX(Structure):
_fields_ = [('dwSize', c_uint32),
('kaeScanResult', KAE_SCAN_RESULT),
('lScanTime', c_longlong),
('dwVirusID', c_uint32),
('dwCleanVirusID', c_uint32)]
# path visit callback function
from os.path import walk, join, normpath
import sys
import os.path
from os import getcwd
def visit(arg, dirname, names):
#print "\n".join(dirname)
files=[normpath(join(dirname, file)) for file in names]
#count = 0
print "in visit ..."
for i in files:
if os.path.isfile(i):
#count += 1
print "File:", i
nRetVal = EngBase.EngBaseScanFileExA(i, pointer(info))
print "scan result : ", nRetVal
# scan directory
def ScanPath(despath):
global info
info = ENGBASE_SCAN_RESULT_EX()
info.dwSize = sizeof(ENGBASE_SCAN_RESULT_EX)
print info.kaeScanResult.nVirusNameSize
fileName = "EngBase.dll"
global EngBase
EngBase = windll.LoadLibrary(fileName)
print EngBase
nRetVal = EngBase.EngBaseInitA()
print "init : ", nRetVal
# scanFile="c:\\boot.ini"
# nRetVal = EngBase.EngBaseScanFileExA(scanFile, pointer(info))
# print "scan : ", nRetVal
# print "virus name : ", info.kaeScanResult.szVirusName
try:
print "to scan : ", despath
walk(despath, visit, 0)
except BaseException:
print "walk error."
nRetVal = EngBase.EngBaseUnInitA()
print "uninit : ", nRetVal
# parse cmd line
def usage():
print "Usage : Python XXX.py "
import getopt, sys
def main():
try:
opts, args = getopt.getopt(sys.argv[1:], "p:v", ["help", "output="])
except getopt.GetoptError:
# print help information and exit:
usage()
sys.exit(2)
verbose = False
print "in ..."
for o, a in opts:
verbose = True
if o == "-p":
ScanPath(a)
elif o in ("-h", "--help"):
usage()
sys.exit()
else:
usage()
if verbose == False :
usage()
# program run start by this
if __name__ == "__main__":
main()
python 结构体 c_Python与C/C++中结构体相关推荐
- java解析c的结构体_解析C语言中结构体struct的对齐问题
首先看一下结构体对齐的三个概念值: 数据类型的默认对齐值(自身对齐): 1.基本数据类型:为指定平台上基本类型的长度.如在32位机器中,char对齐值为1,short为2,int,float为4,do ...
- c语言实现结构体变量private,C语言中结构体变量私有化详解
背景介绍 操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate ...
- c语言中申请内存并初始化,c语言中结构体的定义、初始化及内存分配
#include struct person { char *name; int age; }; int main() { //结构体可以定义在函数内,也可以定义到函数外 //相当于全局变量与局部变量 ...
- python中的选择结构语句是语句_python3控制语句---选择结构语句
python中的控制语句主要有if.if--else.if--slif--else.pass语句.其实python的控制语句与其他语言的控制语句工作原理基本一样.控制语句可以分为选择结构语句和循环结构 ...
- C 语言中结构体强制转换--实验
2019独角兽企业重金招聘Python工程师标准>>> 对于C语言中结构体强制转换做了如下实验, 或许可以解惑一些问题 对于结构体, 我理解的属性有: 成员的顺序, 成员的类型,成员 ...
- FFmpeg 结构体学习(八):FFMPEG中重要结构体之间的关系
FFMPEG中结构体很多.最关键的结构体可以分成以下几类: 解协议(http,rtsp,rtmp,mms) AVIOContext,URLProtocol,URLContext主要存储视音频使用的协议 ...
- C语言中结构体参数变量的传递
c语言 结构体 函数 参数 传递 一.前言 本文中的程序实现对员工信息结构体字段赋值并打印出来的功能.该结构体的定义如下: // 员工信息结构体 typedef struct {INT8 sz ...
- 【C 语言】文件操作 ( 学生管理系统 | 命令行接收数据填充结构体 | 结构体写出到文件中 | 查询文件中的结构体数据 )
文章目录 一.学生管理系统 二.代码示例 一.学生管理系统 前两篇博客 [C 语言]文件操作 ( 将结构体写出到文件中并读取结构体数据 | 将结构体数组写出到文件中并读取结构体数组数据 ) [C 语言 ...
- C语言定义了一个结构体怎么分配内存?C\C++中结构体变量与结构体指针内存分配问题?
C语言定义了一个结构体怎么分配内存?C\C++中结构体变量与结构体指针内存分配问题? 问题1:结构体指针最开始怎么分配内存?用sizeof()是不能确定大小的. 问题2:给结构体变量分配之后,是否还要 ...
最新文章
- iOS 毛玻璃效果的实现方法
- 引用wx.getclipboarddata中的内容_教材、图书在引用时要注意哪些方面
- 在AWS Elastic MapReduce上运行PageRank Hadoop作业
- file watchers怎么默认打开_python怎么打印字符
- 解读核磁共振射频系统架构、模块结构及功能介绍
- android 自定义Preference CheckBoxPreference ListPreference的用法
- 算法基础:用递归解决排列组合问题
- DenseBox: Unifying Landmark Localization with End to End Object Detection
- ibmx3400M3服务器装系统教程,免费安装系统!IBM x3400 M3不足1万2
- linux原生安装postgresgl
- 解决spacy3.2报错:Can‘t find model ‘en‘.
- [转]中风后不要贸然放血急救
- python编制剪刀石头布游戏_Python编辑剪刀石头布游戏
- Resistence gene identify
- Windows XP服务详解
- python字体描边_Android为TextView添加字体库和设置描边的方法
- 蝙蝠侠与小丑:同一硬币的两面?
- 【Swing入门教程】一步一步做Netbeans(1):类Netbeans的主界面
- Python3调用阿里OCR
- windows10下面安装alphapose解决 ImportError : cannot import name ‘deform_conv_cuda‘
热门文章
- 连载 大学生求职七大昏招 三 说谎 2
- 大一小伙子利用Python计算出大学本学期绩点,校长知道后直呼人才
- 计算机应用基础.doc,计算机应用基础.doc
- python爬虫类型_Python爬虫:爬取国内所有高校名称、类型、官网
- OA系统的业务需求分析
- No instances available for XXX
- 环保减排绿色工业:数字孪生垃圾焚烧发电站
- 构建中国云生态 | 华云数据与华为完成产品兼容互认证 被授予华为V认证
- 2022.1.24-2022.1.30 AI行业周刊(第82期):过年
- 简述窄带调频和宽带调频的_通信原理课件宽带调频.ppt