MFC自己定義了一些字符串,在用戶自己定義字符串的時候,id不能重復(fù)。這個時候,用戶自定義id的范圍是什么?
今天同事問我。
我還真不知道,但是我看了下AFXRES.RC 和AFXRES.H ,發(fā)現(xiàn)MFC用的ID都是0xE000以上的。所以,用戶自己用的,從0->0xCFFFF?不過不確定。呵呵,查了一下,正確的可以見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在編譯的時候,就會出錯的。但是
http://support.microsoft.com/kb/q194299/上說,實際上,選
static link mfc才會在編譯的時候發(fā)現(xiàn),否則發(fā)現(xiàn)不了。
另外:
http://www.vckbase.com/article/misc/0022.htm中說,在一個rc文件中,可以同時有幾種語言的資源,呵呵,我發(fā)現(xiàn)我傻了,每次把不同語言的資源發(fā)在不同的rc中,搞得現(xiàn)在好幾個rc文件,每次拷貝切換煩的要死