Env的一个问题:VS 2008,C++关于代码异常
我有像下面的代码:
void HopeException(LPVOID nVerify)
{
char *p = NULL;
p = (char *)nVerify;
delete []p;
}
当我调用函数 “HopeException” 与参数不空,如:
HopeException(123);
那么我希望程序会抛出异常。
但是,当我编译代码VS 2008与版本模式,程序运行良好。
我不知道为什么。任何人都可以帮我解决这个问题吗?
或者你有什么好主意与另一种方法实现该功能?
编辑:
我很抱歉,我想我以前贴错代码。
其实,我正在为我的软件做保护。 我的软件将获得DLL文件的CRC值,然后我的软件将检查CRC值象下面这样:
unsigned int VerifyCRC = FF234322;
unsinged int CRC = getCRC("Fun.dll");
LPVOID lpResult = CRC & (~VerifyCRC);
HopeException(lpResult);
所以根据下面的代码,如果黑客破解的Fun.dll文件中,执行会抛出一个异常。
这真的是我想要的。
该代码甚至不应该编译! –
删除非'new'分配的数据是未定义的,所以无论发生什么都取决于实现。看起来你只是在没有爆炸的情况下幸存下来。但是,你究竟想要做什么? – birryree
我不知道你在用那个代码做什么或者做什么,但是我知道的是你展示了未定义的行为。 – Marlon