I have compiled ClassBuilder 2.5 using VC 2005. The projects required revision and I did a bit of guessing but I did get it to compile, both the DLL and the exe. I added a C file to the project to get the DIB function, but that might not be what was intended. I did a quick test using the system I built with, which is Server 2003. I can do further testing and I can test using XP. I will probably test using XP soon.
Does that help? I can understand the importance of a common development environment, so I can understand if VC 6 needs to be used, but I am confident that whatever problems exist with VC 2005 can be solved.
I will also try building version 2.9.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The problem was that versions built using Visual C++ 2003 and 2005 would not run onder Windows XP. Although that might be easy to solve, I decided to keep using VC6 because IJW (it just worked). Undoubtably, we will move to 2005 / 2008 in the near future. Please let me know about the changes you had to make to get it running.
Regards,
John
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2007-11-18
For 2.9 the major change seems to be that the serialize portion uses the old iostream, such as fstream.h, instead of the standard classes. So I suppose that is something that would be most worthwhile to fix. VC 2005 does not have the old headers.
Other than that, there is not much to do. Since version 2.9 does not have projects for VC 2005, I just opened the VC 6 workspace and VC converted the two projects. So that was quite easy. The only thing I needed to do that I remember (my memory is not so good even though I did it a few minutes ago) is to adjust the include directories. I got to the point of getting an error from fstream.h not found and quit there. I can try modifying the #includes by removing the ".h" to see what happens but since you might have comments or whatever I will wait in case you do.
I have been active in the MSDN VC 2005 forums and I think people there will be eager to help if you want to try VC 2005.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2007-11-20
I apologize for being very innacurate.
The problem is in src\classbuilder\serializexml\CArchiveXML.h. It includes fstream.h unconditionally. I see that all other includes are conditional based on version. So I copied code that does the include conditionally based on _MFC_VER and that compiles. So that is the only modification except for adjustment of the includes directories. Perhaps the fix needs to be made in a different way, if the code is generated, but I assume the responsible person understands that totally.
It compiles, but the link did not complete. I expect that to be easy to fix, but I wanted to correct what I said about fstream.h.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2007-11-20
Correction, again. That was the exe that compiled. The DLL gets many warnings and three errors. One of the errors is about the bsc file, which I am sure is insignificant. The two errors are:
.\SerializeMembersMethodXML.cpp(161) : error C3867: 'Member::GetSerialize': function call missing argument list; use '&Member::GetSerialize' to create a pointer to member
SerializeMethod.cpp
SerializeMethodXML.cpp
.\SerializeMethodXML.cpp(161) : error C3867: 'Member::GetSerialize': function call missing argument list; use '&Member::GetSerialize' to create a pointer to member
The lines that got the errors are the same, except they exist in the two source files; both source code lines are:
I also have Classbuilder built with MSVC 8.0 (2005) and it seems to run and work well. Overall it was (like Sam already said) that just few places needed editing. Less problems than with MSVC 7.1 (2003) if i remember correctly.
Yes, MSVC 8.0 did require explicit '&' for getting a pointer to member function.
Usually i get rid of warnings about the parts of C runtime library (that 8.0 noisily deprecates) by adding a line:
#define _CRT_SECURE_NO_WARNINGS
into each stdafx.h. May be good idea to do with Classbuilder too; that define afaik does not affect older versions of the compiler.
As for the problem with locations of include files and libraries ... then that is same when opening the .dsw-s and .dsp-s with MSVC 6.0 as well. They always seem to be missing the actual locations of files. Minor nuisance to fix, so i always forget to complain. :)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Sorry I haven't been around, I've been busy with other thing. A couple of months back I pushed CB to PR529 from PR523 (the current Beta) but there are some bugs that I haven't been able to clean out because of the lack of time. I've been the one doing the VC++ 2005 modifications and some of the problems that you have mention have been corrected in PR529. I'll try to put PR529 on SF but some of the C++/CLI stuff is still not working correctly.
Gunner
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2007-11-21
It's no problem that you did not have a chance to review this before I made the progress I did.
As far as I am concerned, it is better to not rush getting PR523 out, as far as being careful is concerned.
CLI sounds like a major modification. Obviously it is useful and important.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have compiled ClassBuilder 2.5 using VC 2005. The projects required revision and I did a bit of guessing but I did get it to compile, both the DLL and the exe. I added a C file to the project to get the DIB function, but that might not be what was intended. I did a quick test using the system I built with, which is Server 2003. I can do further testing and I can test using XP. I will probably test using XP soon.
Does that help? I can understand the importance of a common development environment, so I can understand if VC 6 needs to be used, but I am confident that whatever problems exist with VC 2005 can be solved.
I will also try building version 2.9.
The problem was that versions built using Visual C++ 2003 and 2005 would not run onder Windows XP. Although that might be easy to solve, I decided to keep using VC6 because IJW (it just worked). Undoubtably, we will move to 2005 / 2008 in the near future. Please let me know about the changes you had to make to get it running.
Regards,
John
For 2.9 the major change seems to be that the serialize portion uses the old iostream, such as fstream.h, instead of the standard classes. So I suppose that is something that would be most worthwhile to fix. VC 2005 does not have the old headers.
Other than that, there is not much to do. Since version 2.9 does not have projects for VC 2005, I just opened the VC 6 workspace and VC converted the two projects. So that was quite easy. The only thing I needed to do that I remember (my memory is not so good even though I did it a few minutes ago) is to adjust the include directories. I got to the point of getting an error from fstream.h not found and quit there. I can try modifying the #includes by removing the ".h" to see what happens but since you might have comments or whatever I will wait in case you do.
I have been active in the MSDN VC 2005 forums and I think people there will be eager to help if you want to try VC 2005.
I apologize for being very innacurate.
The problem is in src\classbuilder\serializexml\CArchiveXML.h. It includes fstream.h unconditionally. I see that all other includes are conditional based on version. So I copied code that does the include conditionally based on _MFC_VER and that compiles. So that is the only modification except for adjustment of the includes directories. Perhaps the fix needs to be made in a different way, if the code is generated, but I assume the responsible person understands that totally.
It compiles, but the link did not complete. I expect that to be easy to fix, but I wanted to correct what I said about fstream.h.
Correction, again. That was the exe that compiled. The DLL gets many warnings and three errors. One of the errors is about the bsc file, which I am sure is insignificant. The two errors are:
.\SerializeMembersMethodXML.cpp(161) : error C3867: 'Member::GetSerialize': function call missing argument list; use '&Member::GetSerialize' to create a pointer to member
SerializeMethod.cpp
SerializeMethodXML.cpp
.\SerializeMethodXML.cpp(161) : error C3867: 'Member::GetSerialize': function call missing argument list; use '&Member::GetSerialize' to create a pointer to member
The lines that got the errors are the same, except they exist in the two source files; both source code lines are:
Class::MemberIterator member(pClass, Member::GetSerialize);
I also have Classbuilder built with MSVC 8.0 (2005) and it seems to run and work well. Overall it was (like Sam already said) that just few places needed editing. Less problems than with MSVC 7.1 (2003) if i remember correctly.
Yes, MSVC 8.0 did require explicit '&' for getting a pointer to member function.
Usually i get rid of warnings about the parts of C runtime library (that 8.0 noisily deprecates) by adding a line:
#define _CRT_SECURE_NO_WARNINGS
into each stdafx.h. May be good idea to do with Classbuilder too; that define afaik does not affect older versions of the compiler.
As for the problem with locations of include files and libraries ... then that is same when opening the .dsw-s and .dsp-s with MSVC 6.0 as well. They always seem to be missing the actual locations of files. Minor nuisance to fix, so i always forget to complain. :)
Sorry, just noticed that the compile.txt already describes how to fix the locations of files.
Sorry I haven't been around, I've been busy with other thing. A couple of months back I pushed CB to PR529 from PR523 (the current Beta) but there are some bugs that I haven't been able to clean out because of the lack of time. I've been the one doing the VC++ 2005 modifications and some of the problems that you have mention have been corrected in PR529. I'll try to put PR529 on SF but some of the C++/CLI stuff is still not working correctly.
Gunner
It's no problem that you did not have a chance to review this before I made the progress I did.
As far as I am concerned, it is better to not rush getting PR523 out, as far as being careful is concerned.
CLI sounds like a major modification. Obviously it is useful and important.