当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: 正常的情况下,我们写一个 C/C++ 函数,即使是一个空函数,编译器也为我们做了不少的工作,生成了一些“必要”的代码。
 

 

    摘要: windows api 本身已经为我们写好了操作 ini 的函数,但是有时候用起来可能不是很方便。把这些 api 简单封装一下,将会大大方便我们读写 ini 文件。 网上 ini 类多如牛毛。不过我个人认为,实在没有必要每个 ini 操作都真的去调用 ini 类中的函数。下面看看我写的充分使用 inline 和 c++ 省却参数构造的 cini 类: ///////////////////......
    摘要: 在调试状态下,vc 等调试器可以捕捉程序中的 outputdebugstring 输出的信息。其实 outputdebugstring 就是往一片共享影射的内存中写入了一段数据,并创建了两个 enevt,指明数据写入事件被触发。在非调试状态下,我们也可以通过编程实现捕捉 outputdebugstring 的输出。下面的代码演示了如何获取这些信息: dword winapi cdebugtra......


[原创]naked 函数调用
    正常的情况下,我们写一个 c/c++ 函数,即使是一个空函数,编译器也为我们做了不少的工作,生成了一些“必要”的代码.请看下面的函数 (为了说明问题随便写的): 

 

【程序编程相关:取得Windows版本号

【推荐阅读:IE下png图形的另一种处理方法

【扩展信息:JAVA 编程规范

int test()

{

   int ireturn;

   char sztemp[33];

   

   sztemp[0] = ´a´;

   sztemp[1] = ´\0´;

   ireturn = messagebox(null, sztemp, sztemp, mb_ok);

   messagebeep(ireturn);

   return ireturn;

}

    下面是用 vc6 在 release 方式下编译后的的反汇编代码:

00401000   sub         esp,24h     // 增加堆栈空间存放局部变量 (24h = 36d,4 字节对齐,注意这里没有为 ireturn 分配空间)

00401003   push        esi         // 保存要使用的重要寄存器

00401004   lea         eax,[esp+4] // 下面是传递 messagebox() 要使用的参数

00401008   push        0

0040100a   lea         ecx,[esp+8] // 编译器愚蠢,根本不用 ecx,两个都是 sztemp,两次 push eax 不得了

0040100e   push        eax


...   下一页
 ·结构型模式--心得    »显示摘要«
    摘要:结构型强调的是1+1〉2,即充分利用现有的类或者对象,通过合理的组装,达到意想不到(其实是迫切想达到)的效果。 1.adapter.这个基本上现有的系统中都或多或少的会用到。因为,一部分的结构是根据自己的系统制定的,另一方面利用平台提供的类库,mfc .net等等。想把这两个结合起来使用,必然要使用适配器模式拉。这里面主要是区分类适配和对象适配。即继承还是组合拉,都差不多。好比现有一个类可以计算......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE