MFC自己定義了一些字符串,在用戶自己定義字符串的時(shí)候,id不能重復(fù)。這個(gè)時(shí)候,用戶自定義id的范圍是什么?
今天同事問(wèn)我。
我還真不知道,但是我看了下AFXRES.RC 和AFXRES.H ,發(fā)現(xiàn)MFC用的ID都是0xE000以上的。所以,用戶自己用的,從0->0xCFFFF?不過(guò)不確定。呵呵,查了一下,正確的可以見(jiàn)TN020:
http://msdn2.microsoft.com/en-us/library/t2zechd4.aspxBy?convention,?the?ID?value?of?0?is?not?used.
Windows?implementation?limitations?restrict?true?resource?IDs?to?be?less?than?or?equal?to?0x7FFF.
MFC's?internal?framework?implementations?reserve?several?ranges:?0xE000->0xEFFF?and?0x7000->0x7FFF.
Several?Windows?system?commands?use?the?range?of?0xF000?->?0xFFFF.
Control?IDs?of?1->7?are?reserved?by?IDOK,?IDCANCEL,?and?so?on.
The?range?of?0x8000->0xFFFF?for?strings?is?reserved?for?menu?prompts?for?commands.
但是在我的印象中,重復(fù)的字符串id在編譯的時(shí)候,就會(huì)出錯(cuò)的。但是
http://support.microsoft.com/kb/q194299/上說(shuō),實(shí)際上,選
static link mfc才會(huì)在編譯的時(shí)候發(fā)現(xiàn),否則發(fā)現(xiàn)不了。
另外:
http://www.vckbase.com/article/misc/0022.htm中說(shuō),在一個(gè)rc文件中,可以同時(shí)有幾種語(yǔ)言的資源,呵呵,我發(fā)現(xiàn)我傻了,每次把不同語(yǔ)言的資源發(fā)在不同的rc中,搞得現(xiàn)在好幾個(gè)rc文件,每次拷貝切換煩的要死