_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
希望能帮到你!