首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

_declspec(naked)函数的有关问题

2012-08-11 
_declspec(naked)函数的问题#include afxwin.hDWORD p 0x40509C_declspec(naked)void F(){_asm call

_declspec(naked)函数的问题
#include "afxwin.h"
DWORD p = 0x40509C; 
_declspec(naked)void F()
{
  _asm call p;
}
void main()
{
  FILE *fs = fopen("C:\\123.txt","wb");
  fwrite(F,6,1,fs);
  fclose(fs);
}

执行完后生成的123.txt,
里面的内容应该是 FF 15 9C 50 40 00 才对,
为什么打开后变成 FF 15 30 70 40 00 ??
那个全局变量 p 里面的内容会发生变化?

[解决办法]
http://www.cnblogs.com/netzlj/archive/2009/10/22/1588177.html
[解决办法]
执行完后生成的123.txt,
里面的内容应该是 FF 15 9C 50 40 00 才对,
为什么打开后变成 FF 15 30 70 40 00 ??
那个全局变量 p 里面的内容会发生变化?

不会改变的,编译后的汇编指令是:call dword ptr ds:[407030] ,而407030 是正是p的地址,所以打印出来的6字节指令就是:FF 15 30 70 40 00

希望能帮到你!

热点排行