- 博客(5)
- 资源 (2)
- 收藏
- 关注
原创 关于_beginthreadex和CreateThread的区别
在 Win32 API 中,创建线程的基本函数是 CreateThread,而 _beginthread(ex) 是C++ 运行库的函数。为什么要有两个呢?因为C++ 运行库里面有一些函数使用了全局量,如果使用 CreateThread 的情况下使用这些C++ 运行库的函数,就会出现不安全的问题。而 _beginthreadex 为这些全局变量做了处理,使得每个线程都有一
2008-11-13 00:17:00 482
原创 PE文件格式分析及修改
PE 的意思是 Portable Executable(可移植的执行体)。它是 Win32环境自身所带的执行文件格式。它的一些特性继承自Unix的Coff(common object file format)文件格式。“Portable Executable”(可移植的执行体)意味着此文件格式是跨Win32平台的;即使Windows运行在非Intel的CPU上,任何win32平台的PE装载器都能识
2008-11-06 17:27:00 1792
原创 MMX指令集在C++中的使用
上次在《关于内联汇编的几个技巧》一文中只是简单地介绍了如何在C++中使用内联汇编,这一次先对上一次的文章作一补充,然后介绍如何使用MMX指令。 一、 内联汇编的一般原则:1、 自由使用通用寄存器;(EAX,EBX,ECX和EDX)2、 其它寄存器利用堆栈保留,使用,最后恢复;一般的像下面这样: __asm{ push ebp push esp ……….//使用EBP和ESP po
2008-11-05 16:01:00 675
原创 关于内联汇编的几个技巧
有时我们的程序需要一些很高的执行效率或者执行系统底层的功能模块,这些关键的部分我们可以采用内联汇编直接插入汇编指令来达到我们的要求,以下是几个技巧与大家共同探讨. 1. 内联汇编嵌入VC语句:在VC中内联汇编非常方便,只需要按照如下格式__asm{ //汇编语句}请看如下示例代码void CAlcmemDlg::OnButton3() { DWORD d=(m_size*1024
2008-11-05 15:56:00 644
原创 生死疆界--- 在new与delete之间
问题源自一段简单的代码:void main(){ char *p = new char; cin>>p; cout<<p[2]; delete p;} 在以上代码中,如果你输入:abcd,那么如你所望,你会看到"正确"的输出"c"。但是会有错误提示出现: Debug Error!Program: test.exeDAMAGE: after Normal block(#6
2008-11-05 11:25:00 577
操作系统课程设计--模拟文件管理系统
2010-03-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人