当前位置: 首页 > news >正文

网站开发视频教程百度网盘网站图一般做多少分辨率

网站开发视频教程百度网盘,网站图一般做多少分辨率,市住房和城乡规划建设局网站,智慧团建电脑版入口[简介] 常用网名: 猪头三 出生日期: 1981.XX.XXQQ: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、Delphi…

[简介]
常用网名: 猪头三
出生日期: 1981.XX.XX
QQ: 643439947
个人网站: 80x86汇编小站 https://www.x86asm.org
编程生涯: 2001年~至今[共22年]
职业生涯: 20年
开发语言: C/C++、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python
开发工具: Visual Studio、Delphi、XCode、Eclipse、C++ Builder
技能种类: 逆向 驱动 磁盘 文件
研发领域: Windows应用软件安全/Windows系统内核安全/Windows系统磁盘数据安全/macOS应用软件安全
项目经历: 磁盘性能优化/文件系统数据恢复/文件信息采集/敏感文件监测跟踪/网络安全检测

[序言]
从Delphi XE时代开始, 编译器就默认使用宽字节模式编译了. Char默认转换为WChar, 然后一切API函数默认使用W模式. 这是非常好的开端. 但是也造成在代码迁移的过程中, 会出现非常隐蔽的BUG.

[下面是非常重要的细节, 一定要认真理解, 如果看不懂, 那就证明你的程序, 后期会有很大的安全隐患]

代码1: 静态数组

char_TargetPathBuf     : array[0..4] of Char; // 声明具有5个Char的静态数组
var int_Size : Integer := SizeOf(Char) ;      // 返回2, 因为默认是WChar, 具有2个字节Bytes
var int_Size_Array_Len : Integer := Length(char_TargetPathBuf) ; // 返回5, 表示该数组有5个元素
var int_Size_Array     : Integer := SizeOf(char_TargetPathBuf) ; // 返回10, 表示该数组占用10个字节.

注意如下表达式: 

SizeOf(char_TargetPathBuf) = Length(char_TargetPathBuf) * SizeOf(Char) // 两者是等效的. 但是推荐使用右边的写法.

初始化静态数组:

ZeroMemory(@char_TargetPathBuf, Length(char_TargetPathBuf)*SizeOf(Char)) ;
ZeroMemory(@char_TargetPathBuf[0], Length(char_TargetPathBuf)*SizeOf(Char)) ;
FillChar(char_TargetPathBuf, SizeOf(char_TargetPathBuf), 0) ;
FillChar(char_TargetPathBuf, Length(char_TargetPathBuf)*SizeOf(Char), 0) ;

这里要注意: char_TargetPathBuf表示具有5个Char字符的静态数组而不是数组指针, 因此在使用ZeroMemory的时候, 通过@char_TargetPathBuf取得该静态数组的指针. 也可以通过@char_TargetPathBuf[0]获取.

代码2 动态数组

dya_TargetPathBuf : array of Char ; // 声明一个动态数组, 名为dya_TargetPathBuf
SetLength(dya_TargetPathBuf, 5) ;  // 为动态数组初始化为5个Char字符容量大小, 内容默认是0
var int_Size_Array_Len : Integer := Length(dya_TargetPathBuf) ; // 返回5, 表示该数组有5个元素
var int_Size_Array     : Integer := SizeOf(dya_TargetPathBuf) ; // 返回4, 这里为什么会返回4, 而不是10呢?

重点注意: SizeOf(dya_TargetPathBuf) = 4, 无论你分配多大的容量, 都是等于4.
因为dya_TargetPathBuf是动态数组类型, 它默认是一个指针类型, 它是一个指向存放数组指针的指针. 也就是通常说的二级指针. 下面用代码表示:

var dya_Address : PCardinal := @dya_TargetPathBuf ; // 通过"@"操作符, 取得动态数组指针.
var dya_Array_Pointer : Cardinal := dya_Address^;   // 通过"^"操作符, 取得指向数组指针. 这个就是真正指向数组数据的指针了.

明白上面的两行代码之后, 就可以理解下面的"动态数组初始化"的写法.

ZeroMemory(PChar((@dya_TargetPathBuf)^), Length(dya_TargetPathBuf)*SizeOf(Char)) ;
ZeroMemory(Pointer(dya_TargetPathBuf), Length(dya_TargetPathBuf)*SizeOf(Char)) ;
FillChar(dya_TargetPathBuf[0], Length(dya_TargetPathBuf)*SizeOf(Char), 0) ;

[总结]
上面的内容是非常重要且很细节的东西, 这是安全编程必不可少的知识点. 希望对大家有帮助.

[下面附上截图, 让大家理解得更加透彻]

http://www.15wanjia.com/news/175543.html

相关文章:

  • 网站的功能和作用免费网站现在是怎么了
  • python 微信网站开发wordpress推广联盟
  • 没有网站怎么快速做cps企业网站营销推广方案
  • 关于网站开发的网站义乌搭建网站
  • 企业网站的建设的目标人物是哪个网站 的域名最便宜
  • 目前最好的免费网站做详情页上什么网站找素材
  • 呼市浩特网站建设外包公司商务网站建设实训报告1500字
  • 建设网站的程序电子商务网站开发平台图
  • dede仿站浏阳网站建设
  • 娄底网站seo免费个人网站在线制作
  • 优秀网站设计欣赏郑州做设计公司网站
  • 淄博网站建设价格wordpress 火箭加速
  • 品牌案例网站公司网址怎么注册步骤
  • 受雇去建设网站类网站凡科送审平台学生不能登录
  • 大型网站建设就找兴田德润怎么做校园表白网站
  • 公司建设网站费用如何入帐万维网站建设
  • dede怎么做商城网站oa管理系统报价
  • 网站推广存在的问题龙之向导外贸网址
  • 比较有设计感的网站wordpress怎么安装上服务器
  • 做外贸上哪些网站苏州网站开发外包公司
  • 山东网站seo开发wordpress acf插件
  • wordpress做cms网站怎样看一个网站的信息吗
  • 要怎么做网站无锡餐饮网站建设
  • 怎么做带网站连接的表格做水电到哪个网站找信息
  • 做一个中英文网站的价格wordpress如何装修
  • 企业网站营销典型案例企商百度网站建设
  • asp怎么样做网站后台企业内部网站建设方案
  • 网站设计论文html中铁建设集团有限公司是国企还是央企
  • tv域名的网站永康市网站建设制作
  • 大兴建设网站公司分销体系搭建