应用场景:

由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++中结构体相关推荐

  1. java解析c的结构体_解析C语言中结构体struct的对齐问题

    首先看一下结构体对齐的三个概念值: 数据类型的默认对齐值(自身对齐): 1.基本数据类型:为指定平台上基本类型的长度.如在32位机器中,char对齐值为1,short为2,int,float为4,do ...

  2. c语言实现结构体变量private,C语言中结构体变量私有化详解

    背景介绍 操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate ...

  3. c语言中申请内存并初始化,c语言中结构体的定义、初始化及内存分配

    #include struct person { char *name; int age; }; int main() { //结构体可以定义在函数内,也可以定义到函数外 //相当于全局变量与局部变量 ...

  4. python中的选择结构语句是语句_python3控制语句---选择结构语句

    python中的控制语句主要有if.if--else.if--slif--else.pass语句.其实python的控制语句与其他语言的控制语句工作原理基本一样.控制语句可以分为选择结构语句和循环结构 ...

  5. C 语言中结构体强制转换--实验

    2019独角兽企业重金招聘Python工程师标准>>> 对于C语言中结构体强制转换做了如下实验, 或许可以解惑一些问题 对于结构体, 我理解的属性有: 成员的顺序, 成员的类型,成员 ...

  6. FFmpeg 结构体学习(八):FFMPEG中重要结构体之间的关系

    FFMPEG中结构体很多.最关键的结构体可以分成以下几类: 解协议(http,rtsp,rtmp,mms) AVIOContext,URLProtocol,URLContext主要存储视音频使用的协议 ...

  7. C语言中结构体参数变量的传递

    c语言  结构体  函数  参数  传递 一.前言 本文中的程序实现对员工信息结构体字段赋值并打印出来的功能.该结构体的定义如下: // 员工信息结构体 typedef struct {INT8 sz ...

  8. 【C 语言】文件操作 ( 学生管理系统 | 命令行接收数据填充结构体 | 结构体写出到文件中 | 查询文件中的结构体数据 )

    文章目录 一.学生管理系统 二.代码示例 一.学生管理系统 前两篇博客 [C 语言]文件操作 ( 将结构体写出到文件中并读取结构体数据 | 将结构体数组写出到文件中并读取结构体数组数据 ) [C 语言 ...

  9. C语言定义了一个结构体怎么分配内存?C\C++中结构体变量与结构体指针内存分配问题?

    C语言定义了一个结构体怎么分配内存?C\C++中结构体变量与结构体指针内存分配问题? 问题1:结构体指针最开始怎么分配内存?用sizeof()是不能确定大小的. 问题2:给结构体变量分配之后,是否还要 ...

最新文章

  1. iOS 毛玻璃效果的实现方法
  2. 引用wx.getclipboarddata中的内容_教材、图书在引用时要注意哪些方面
  3. 在AWS Elastic MapReduce上运行PageRank Hadoop作业
  4. file watchers怎么默认打开_python怎么打印字符
  5. 解读核磁共振射频系统架构、模块结构及功能介绍
  6. android 自定义Preference CheckBoxPreference ListPreference的用法
  7. 算法基础:用递归解决排列组合问题
  8. DenseBox: Unifying Landmark Localization with End to End Object Detection
  9. ibmx3400M3服务器装系统教程,免费安装系统!IBM x3400 M3不足1万2
  10. linux原生安装postgresgl
  11. 解决spacy3.2报错:Can‘t find model ‘en‘.
  12. [转]中风后不要贸然放血急救
  13. python编制剪刀石头布游戏_Python编辑剪刀石头布游戏
  14. Resistence gene identify
  15. Windows XP服务详解
  16. python字体描边_Android为TextView添加字体库和设置描边的方法
  17. 蝙蝠侠与小丑:同一硬币的两面?
  18. 【Swing入门教程】一步一步做Netbeans(1):类Netbeans的主界面
  19. Python3调用阿里OCR
  20. windows10下面安装alphapose解决 ImportError : cannot import name ‘deform_conv_cuda‘

热门文章

  1. 连载 大学生求职七大昏招 三 说谎 2
  2. 大一小伙子利用Python计算出大学本学期绩点,校长知道后直呼人才
  3. 计算机应用基础.doc,计算机应用基础.doc
  4. python爬虫类型_Python爬虫:爬取国内所有高校名称、类型、官网
  5. OA系统的业务需求分析
  6. No instances available for XXX
  7. 环保减排绿色工业:数字孪生垃圾焚烧发电站
  8. 构建中国云生态 | 华云数据与华为完成产品兼容互认证 被授予华为V认证
  9. 2022.1.24-2022.1.30 AI行业周刊(第82期):过年
  10. 简述窄带调频和宽带调频的_通信原理课件宽带调频.ppt