三九宝宝网宝宝百科宝宝知识

C++技巧:doj中的扩展section:mandLine

11月30日 编辑 39baobao.com

[C++技巧:OpenCASCADE智能指针的使用]学习OCC的第一步是要了解其类的结构及组成,比如AIS_InteractiveObject类用来表示一个交互 式图形对象,如果进一步了解会发现其继承关系是:MMgt_TShared->Standard_Transient->P...+阅读

vdsp中的doj文件采用的是elf格式,但是做了一些扩展,其中.mandLine是额外添加上去的一个section,它的section head可取如下值:

table 0 属性值 附加说明

sh_name 669 Section name, index in string tbl

sh_type STRTAB Type of section

sh_flags 0x00000000 Miscellaneous section attributes

sh_addr 0x00000000 Section virtual addr at execution

sh_offset 3426 Section file offset

sh_size 184 Size of section in bytes

sh_link 0 Index of another section

sh_info 0x00000000 Additional section information

sh_addralign 0 Section alignment

sh_entsize 0 Entry size if section holds table

它的sh_type值为STRTAB,也即是说这个段中只存储字符串列表。这个段的内容为:

table 0 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 字符串值

0x00000000 00 43 3a 5c 50 72 6f 67 72 61 6d 20 46 69 6c 65 C Program File

0x00000010 73 5c 41 6e 61 6c 6f 67 20 44 65 76 69 63 65 73 s Analog Devices

0x00000020 5c 56 69 73 75 61 6c 44 53 50 20 35 2e 30 5c 65 VisualDSP 5 0 e

0x00000030 61 73 6d 62 6c 6b 66 6e 2e 65 78 65 20 2e 5c 75 asmblkfn exe u

0x00000040 2d 62 6f 6f 74 5f 62 61 73 69 63 63 72 74 2e 73 boot basiccrt s

0x00000050 20 2d 70 72 6f 63 20 41 44 53 50 2d 42 46 35 36 proc ADSP BF56

0x00000060 31 20 2d 66 69 6c 65 2d 61 74 74 72 20 50 72 6f 1 file attr Pro

0x00000070 6a 65 63 74 4e 61 6d 65 3d 75 2d 62 6f 6f 74 20 jectName u boot

0x00000080 2d 67 20 2d 73 69 2d 72 65 76 69 73 69 6f 6e 20 g si revision

0x00000090 30 2e 33 20 2d 6f 20 2e 5c 44 65 62 75 67 5c 75 0 3 o Debug u

0x000000a0 2d 62 6f 6f 74 5f 62 61 73 69 63 63 72 74 2e 64 boot basiccrt d

0x000000b0 6f 6a 20 2d 4d 4d 20 00 oj MM

实际上就是两个字符串:

table 0 起始位置 字符串值

1 0

2 1 C:\Program Files\Analog Devices\VisualDSP 5.0\easmblkfn.exe .\u-boot_basiccrt.s -proc ADSP-BF561 -file-attr ProjectName=u-boot -g -si-revision 0.3 -o .\Debug\u-boot_basiccrt.doj -MM

第一个空串,第二个就是编译时的命令行!

以下为关联文档:

VC++字体通用的类#include "stdafx.h" #include "font.h" COleFont properties CString COleFont::GetName() { CString result; GetProperty(0x0, VT_BSTR, (void*) return result; } void...

C++技巧:emacs完美的C++的自动补全1,CVS cedet的最新代码,1.04代码补全很慢。 cvs -z3 -d:pserver:anonymous#cedet.cvs.sourcefe.:/cvsroot/cedet co -P cedet 2,命令行运行 touch `find -name "Makefile"` (注...

解决VC++程序国际化的类,解决乱码问题#include "stdafx.h" #include "global.hpp" Deion: generate an error message int Error(long err, char *fmt, ...) { static char buf[256]; static char buf2[256]; va...

使用VC++6关闭指定窗口标题的程序常常听说有病毒关闭杀毒软件,是枚举窗口标题来实现的,那么内幕是什么呢? 其实只需要数10行代码就可以了。 VC++6.0建立Win32 APPlication,复制下面的代码... #include BOOL CALL...

二级考试C++基础:volatile的使用方法volatile的本意是一般有两种说法--1.“暂态的”;2.“易变的”。 其实Volatile是由于编译器优化所造成的一个Bug而引入的关键字。 int a = 10; int b = a; int c = a; 理论上...

C++中使用断点写调试方法C/C++ code: f9 --- 设置/取消断点 f10 --- 单步执行 f11 --- 比f10的步幅小,f10在函数的调用时,直接跳过,在f11下,会进入函数体! f5 --- 执行到下一个断点! 了解调试,首先要知道"...

c++读写剪贴板代码代码如下: 写: if(OpenClipboard()) { CString str; HANDLE hClip; char *pBuf; EmptyClipboard(); str="879789789"; hClip=GlobalAlloc(GMEM_MOVEABLE,str.GetLength()+1);...

c++数据类型及复杂声明推演数据类型 c++程序员已经知道c语言有五种数据类型:void,int,float,double和char: 类型 描述 void 无数据类型 int 整数类型 float 浮点数 double 双精度浮点数 char 字符型 c+...

C++基础:有趣的#define的一个实例看了一下google CoverStory的代码,有一个地方很有意思: These are the various document types used by CoverStory. Included in both Obj-C and plist sources. A little ma...

推荐阅读
图文推荐