Migrating old project to VS2008 - resource file errors
-
I'm moving an older EVC++ project to VS2008 (OS change). I have it all compiling, but I can no longer edit my dialogs in the resource editor. When I attempt to open the editor, I receive an error dialog: "C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\prsht.h(0)" "error RC2247: SYMBOL name too long There are a couple of solutions posted in SO, but so far, I'm still busted.:confused: I know the sdk is old, I've tried it on a VM with Windows 7 SDK, and it still does this. Maybe one of you has encountered this error?
Charlie Gilley Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
-
I'm moving an older EVC++ project to VS2008 (OS change). I have it all compiling, but I can no longer edit my dialogs in the resource editor. When I attempt to open the editor, I receive an error dialog: "C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\prsht.h(0)" "error RC2247: SYMBOL name too long There are a couple of solutions posted in SO, but so far, I'm still busted.:confused: I know the sdk is old, I've tried it on a VM with Windows 7 SDK, and it still does this. Maybe one of you has encountered this error?
Charlie Gilley Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
I would suggest the best way forward is to open the .RC file in the text editor (either in VS or using Notepad) and see if you can tidy up anything that looks out of place. And without seeing the resource statements it's impossible to guess what that may be.
-
I would suggest the best way forward is to open the .RC file in the text editor (either in VS or using Notepad) and see if you can tidy up anything that looks out of place. And without seeing the resource statements it's impossible to guess what that may be.
Richard - are you suggesting I tidy up Microsoft's area? My resource file hasn't changed.
Charlie Gilley Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
-
Richard - are you suggesting I tidy up Microsoft's area? My resource file hasn't changed.
Charlie Gilley Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
-
Richard - are you suggesting I tidy up Microsoft's area? My resource file hasn't changed.
Charlie Gilley Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
RC and RES files have always been dangerous to rely on. Generally hold your bitmaps as bitmaps, and your dialog, menus and text as standard text files. Then script them or manually drag and drop them when you go onto a new version of Visual Studio. You are basically asking Microsoft to make everything backwards compatible just so you can just pick up a prior project and compile it on the later version. The toolchain is long and subject to change and that is NEVER GOING TO HAPPEN. You always have the option to stay with and compile your code on VS2008. A resource file is an ancillary file, do you expect your old manifest files to be backward compatible on the new compiler as well? I am with Richard if you think Microsoft should support stuff to this level try the forums. I however feel you are being totally unreasonable its a few minutes work to deal with and you are almost certainly going to get a longer list of code changes that you will be required to vet with the new version. Out of interest how many code warnings and deprecated calls did you get when you loaded the old code.
In vino veritas
-
RC and RES files have always been dangerous to rely on. Generally hold your bitmaps as bitmaps, and your dialog, menus and text as standard text files. Then script them or manually drag and drop them when you go onto a new version of Visual Studio. You are basically asking Microsoft to make everything backwards compatible just so you can just pick up a prior project and compile it on the later version. The toolchain is long and subject to change and that is NEVER GOING TO HAPPEN. You always have the option to stay with and compile your code on VS2008. A resource file is an ancillary file, do you expect your old manifest files to be backward compatible on the new compiler as well? I am with Richard if you think Microsoft should support stuff to this level try the forums. I however feel you are being totally unreasonable its a few minutes work to deal with and you are almost certainly going to get a longer list of code changes that you will be required to vet with the new version. Out of interest how many code warnings and deprecated calls did you get when you loaded the old code.
In vino veritas
Well "
Quote:
RC and RES files have always been dangerous to rely on.
I understand your comments, but your first statement rather surprises me. Over the past 13 years or so, I've moved through EVC++, VS6, 2008, 2010, 2013, and now 2015. Never has it occurred to me that I should worry about the RC file. FWIW, others have had this problem prior to me. Regarding backwards compatibility, not sure why you think I even suggested such a beast. But, if I use the "import source from an existing project", I sort of expect something semi functional. I don't think that is unreasonable. I know it's fixable, as soon as I find the solution, I'll close out my own question.
Charlie Gilley Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
-
Well "
Quote:
RC and RES files have always been dangerous to rely on.
I understand your comments, but your first statement rather surprises me. Over the past 13 years or so, I've moved through EVC++, VS6, 2008, 2010, 2013, and now 2015. Never has it occurred to me that I should worry about the RC file. FWIW, others have had this problem prior to me. Regarding backwards compatibility, not sure why you think I even suggested such a beast. But, if I use the "import source from an existing project", I sort of expect something semi functional. I don't think that is unreasonable. I know it's fixable, as soon as I find the solution, I'll close out my own question.
Charlie Gilley Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
I am surprised you never ran into the problem with RC files when you went from 16 bit to 32 bit programs because the header includes the language id and the Resource compiler used to always spit it about language not being set. The solution is dead simple and was given to you by Richard ... open the RC file with a text editor its a straight text file. Just pick the body up onto the clipboard and post it into a new empty resource file associated to the project. That is why we can't work out why you are stressed over it as it's like 1 min work with a text editor. All the Resource compiler is complaining about it the header information in the old RC file which has includes directories that are wrong or header commands that aren't supported. The reason for that is most likely you used a resource kit wizzard and it's directing to that old directory or deprecated. You might have one or two resources you are using from the kit which will be trivial junk like ID's or perhaps an icon and if you have any just make your own replacements getting rid of dependency on the old kit. I guess I should ask do you know what the RC body should look like and where the header ends? Even if you aren't familiar the format detail is so obvious I am sure if you spent 10 min looking at the file you will work it out. If you get stuck just paste the top 10-20 lines of the file and we can help.
In vino veritas
-
I am surprised you never ran into the problem with RC files when you went from 16 bit to 32 bit programs because the header includes the language id and the Resource compiler used to always spit it about language not being set. The solution is dead simple and was given to you by Richard ... open the RC file with a text editor its a straight text file. Just pick the body up onto the clipboard and post it into a new empty resource file associated to the project. That is why we can't work out why you are stressed over it as it's like 1 min work with a text editor. All the Resource compiler is complaining about it the header information in the old RC file which has includes directories that are wrong or header commands that aren't supported. The reason for that is most likely you used a resource kit wizzard and it's directing to that old directory or deprecated. You might have one or two resources you are using from the kit which will be trivial junk like ID's or perhaps an icon and if you have any just make your own replacements getting rid of dependency on the old kit. I guess I should ask do you know what the RC body should look like and where the header ends? Even if you aren't familiar the format detail is so obvious I am sure if you spent 10 min looking at the file you will work it out. If you get stuck just paste the top 10-20 lines of the file and we can help.
In vino veritas
With insufficient information, I missed what Richard was saying. I have to laugh though. When Windows was 16 bit, I was off in Unix land. So, I've not made this transition. I did just get done with migrating the project as a whole, so the suggestion certainly makes sense.
Quote:
Just pick the body up onto the clipboard and post it into a new empty resource file associated to the project. That is why we can't work out why you are stressed over it as it's like 1 min work with a text editor
. *now* I understand, sorry for being so dense.:thumbsup: I'll get to this in the afternoon and see where it leads me.
Charlie Gilley Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
-
I'm moving an older EVC++ project to VS2008 (OS change). I have it all compiling, but I can no longer edit my dialogs in the resource editor. When I attempt to open the editor, I receive an error dialog: "C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\prsht.h(0)" "error RC2247: SYMBOL name too long There are a couple of solutions posted in SO, but so far, I'm still busted.:confused: I know the sdk is old, I've tried it on a VM with Windows 7 SDK, and it still does this. Maybe one of you has encountered this error?
Charlie Gilley Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Well, to update this query by me so that someone might be helped in the future: VS2008 does not even come close to properly converting a project from eVC++. There are so many macros left undefined from the conversion that VS2008 is not able to handle its own includes let alone the application. The problem has absolutely ZERO to do with any specific resource file. It's caused by the pathetic migration effort made by VS2008. Save yourself some time and (a) create a simple smart device project appropriate for you in VS2008. Then (b) migrate the existing code base in one at a time. Even then your dialog resource processing may need manual intervention.
Charlie Gilley Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759