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