自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

石头的专栏

计算机科学的本质就是在抽象的基础上再建立抽象

  • 博客(9)
  • 收藏
  • 关注

原创 C++ vtable的生成以及vptr的赋值跟踪实验

在看《Inside The C++ Object Model》时想到一个问题, vtable是在什么时候生成的?运行时对象的vptr又是什么时候赋值的?如何得知相应的函数的地址的?为此写程序实验了一下,得出结论如下:1. 编译的时候,编译器自动为每个有虚函数的类生成vtable,此vtable类似于静态常量数据,并编译到最终的可执行文件中。2. 具体实例的vptr在构造函数中赋值,

2009-07-05 14:33:00 2189

原创 C++如何生成utf-8编码的文件

习惯了java生成文件的方便,c++如何生成utf-8编码的文件呢?步骤如下:1. 首先要写一个BOM头。UTF-8文件一般是要这个头的,当然也可以没有。2. 将要生成的字符先使用宽字符格式生成,然后调用WideCharToMultiByte转为utf-8编码,写入文件。例子如下:    FILE * pFile = fopen("d://a.txt", "w");

2009-06-30 21:42:00 7771

原创 DOS EXE起始地址的确定

前段时间看到有人讨论DOS EXE的加载过程,讨论其起始地址是如何确定的? 解决问题最好的办法就是实践:写一段最简单的汇编        STSG SEGMENT STACK S            DW 32 DUP(?)        STSG ENDS        DATA SEGMENT            A DW 123           

2009-06-27 22:16:00 1963 1

原创 链接装载实验一

最近在看《程序员的自我修养-链接、装载与库》一书。以前在一些其他书中看过一些这方面的资料,主要是《深入理解计算机系统》,《编程之道卓越一、二》这三本,对这方面有一个大概的认知,但一直没有一个完整的理解,最近通过看这本书,解决了很多细节上的疑惑。当然东西还是要自己动手实验一下理解的更深。今天通过一个汇编语言的例子,初步试验了看到的一些知识。书上用的c语言和GUN的objdump工具,我拿Window

2009-05-17 13:52:00 992

原创 关于Java中字符编码的一点总结

最近在编写一个servlet上传文件的时候,上网找了一个写好的JspUpload类。能够较好的处理文件上传,但在获取表单中其他Input填写的数据时却得到的乱码,调试的时候发现作者完全忽视了编码的问题。为此总结一些自己关于编码方面的心得。首先好像Jole讲过这样一句话,大意是:  当面对一串字节流的时候,如果不指定它的编码,其实际意义是无法知道的。这句话应该也是我们面对“字符转字节,字节转字符”问

2009-05-10 11:09:00 1227

原创 Java流使用的一点总结

最经工作中碰到不少Java流的使用,总结如下:1. 生成Zip格式,遇到的是要在一个Servlet中生成Zip文件,输出到web 客户端,直接下载。    response.setContentType("application/zip"); response.addHeader("Content-Disposition", "attachment;filename=/"xxx.zip/

2009-05-09 13:41:00 1710

原创 深入了解虚拟函数的静态类型和动态类型

先来看一个问题,如果一个子类重载的虚拟函数为privete,那么通过父类的指针可以访问到它吗? #include class B{public: virtual void fun() { std::cout << "base fun called"; };};class D : public B {private: virtual voi

2009-03-20 09:43:00 1557

原创 C++中typename关键字的使用方法和注意事项

1, 什么地方使用?用在模板定义里,标明其后的模板参数是类型参数。例如 templateT foo(const T& t, const Y& y){//....};templaceclass CTest{private: T t;public: //...}其实,这里最常用的是使用关键字class,而且二者功能完全相同,这里的class和定义类时的class完全是两回事,C++当时就是

2007-01-18 19:42:00 31186 10

原创 ANSI,MBCS,UNICODE

编程的书中经常介绍UNICODE,还有字符串函数中经常见各种格式,下面以以"abc我你他"为例分别介绍测试源码:TCHAR* p = _T("abc我你他"); std::cout 我们写的代码应该是这个样子的,即既符合ANSI又符合UNICODE的代码,使用_T宏和_ts函数集。一、ANSI编码:普通英文字母一个,汉字占两个字节。"abc我你他"占用9个字节。  编译选项里没有相

2006-06-21 20:05:00 1556

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除