There is no end, it is just the beginning! - A Game Developer's Notes
posted on 2009-07-29 23:38 Heath 閱讀(2820) 評論(24) 編輯 收藏 引用 所屬分類: Programming Language
換個名字撒,呵呵,難道情有獨鐘啊 回復 更多評論
偶也覺得,換個名字就好了啊。 回復 更多評論
This is an overstatement. There are tons of defs in the system header files, why you don't complain about them? 回復 更多評論
說明微軟高啊 微軟能把這么破的玩意組織了這么都年 ,你能說不好嗎? 存在的就是合理的! 回復 更多評論
不錯啊! 回復 更多評論
干嘛用名詞當函數名,重名是肯定的 回復 更多評論
麻煩都是自找的,你開個命名空間不就是了 回復 更多評論
謝謝LZ分享 回復 更多評論
確實是很大的陷阱,這種宏很多,一不小心就掉井里。如果自己編程序的話,名字改了也就改了,即使改成阿貓阿狗也無所謂。但是如果是團隊開發,而且這些名字已經規定在了接口規范里,就不是那么容易改的了。況且,作為好的編程習慣,保持方法名的可讀性是非常重要的! 回復 更多評論
這種編譯錯誤很好找,博主不會看不懂錯誤提示吧 回復 更多評論
@simon 宏是通殺啊,沒有用的。 回復 更多評論
命名空間 回復 更多評論
這個還真么注意到,放在命名空間里也會替換么? 回復 更多評論
簡直是扯淡。 回復 更多評論
@岳陽 @fuckyou 自己實踐去吧,別沒事在這里亂吐口水... 回復 更多評論
存在就是合理。在 Windows 平臺上寫東西,這種錯誤不應該犯。就像你用 C 寫程序,你總不能要求用 do 當函數名是應該被接受的。 回復 更多評論
@cyberamoeba 呵呵,這句話真有意思,你能像記住C語言關鍵字那樣記住那么多Windows API嗎?當你發現自己連命名一個SetPort函數的權力都沒有的時候,你還會這樣想嗎?上面例子中的MessageBox,當然是個人都知道。 回復 更多評論
你有命名MessageBox的權利,條件是別去包含 <windows.h>既然你包含了這個文件,那就乖乖換名字吧。 回復 更多評論
我也遇到過類似的問題,當時沒有細究,只是重新命名了,原來是宏的問題。。。 回復 更多評論
@hdqqq undef掉MessageBox,直接調用MessageBoxA或者MessageBoxW不就行啦,真是OUT得不行了。。。 回復 更多評論
你認為windows該怎么做才能做到兼容ascii和Unicode呢?自己定義的函數加個項目名稱或者單位的前綴都是不錯的。看看jni生成的c接口 回復 更多評論
既然你知道了原因,那出現了這個錯誤信息你肯定立刻就反應過來的了。 回復 更多評論
編譯器應該負責 回復 更多評論
剛才測試過,在vs2008中,用了命名空間是不會有問題的。。。 回復 更多評論
Powered by: C++博客 Copyright © Heath