访问违规读取位置没有位置

时间:2015-02-03 01:07:38

标签: c++

好吧,我有两个功能

void RealFunction()
{
    MessageBox(NULL, "RealFunction()", "Trace", MB_OK);
}

void FakeFunction()
{
    MessageBox(NULL, "FakeFunction()", "Trace", MB_OK);
}

当我尝试这样做时,我得到访问冲突错误

void main()
{
    DWORD target = (DWORD)RealFunction;
    DWORD trampoline = (DWORD)Trampoline;
    cout << target + " - " + trampoline << endl;
}

我不知道为什么在我尝试播放DWORD时它甚至会抛出访问权限?

1 个答案:

答案 0 :(得分:2)

DWORD target = (DWORD)RealFunction;
DWORD trampoline = (DWORD)Trampoline;
cout << target + " - " + trampoline << endl;

您的意思是<<而不是+

你有一个const char *,包含短划线的字符串文字。为此,你要添加两个,可能是相当大的数字,结果是一些荒谬的内存地址,它被解释为一个字符串指针。未定义的行为。