www.digitalmars.com         C & C++   DMDScript  

c++.idde - ClassExpress problems porting from MS VC++ ver 6

reply Andrew Corkan <acorkan icubed.com> writes:
    Greetings and a sincere thanks to Mr. Bright and Mr. Knepper for all
their work and support on this great product.  I have ordered the CD, so
maybe the new DM tools will solve my problem, but I thought I would post
this just in case.

    I am currently using Symantec ver 7.5 (7.60b actually) compiler.
Having found DigitalMars now continuing that fine product I decided to
port over some programs from Microsoft VC++ to see if I can justify
using DM for our company.
    The big problem in the port is that when I now invoke ClassExpress
and look at the "Message Maps" it does not list the control define
values in the "Control ID's in Class", but rather a bunch of numbers.
In fact if I try to scroll through list of numbers the IDDE crashes.
The "Data Transfer" looks OK, and I can't see what in the source code
has changed or might be incompatible with the IDDE.
    What is the tool incompatibility when moving from MS VC++ to DM?  Is
there a document describing this problem?

Thanks
Andy
Feb 22 2002
parent reply "Walter" <walter digitalmars.com> writes:
"Andrew Corkan" <acorkan icubed.com> wrote in message
news:3C766268.D4A4173F icubed.com...
     What is the tool incompatibility when moving from MS VC++ to DM?  Is
 there a document describing this problem?
In general, to use resources in DM's IDDE, they need to have been created by DM's IDDE.
Feb 22 2002
next sibling parent reply Andrew Corkan <acorkan icubed.com> writes:
Walter wrote:

 "Andrew Corkan" <acorkan icubed.com> wrote in message
 news:3C766268.D4A4173F icubed.com...
     What is the tool incompatibility when moving from MS VC++ to DM?  Is
 there a document describing this problem?
In general, to use resources in DM's IDDE, they need to have been created by DM's IDDE.
Isn't there any way to convert, or documentation on the different standards? I looked at the Microsoft generated code and some SC++ generated code and I can't see any difference. Does anyone even know the difference or what the IDDE is failing to read or see in the source? Is there a parallel file that I need to generate? Even if it takes some effort I am willing to try since I would much prefer to use the DM compiler. Thanks. Andy
Feb 22 2002
parent reply "Walter" <walter digitalmars.com> writes:
"Andrew Corkan" <acorkan icubed.com> wrote in message
news:3C76CA54.52088896 icubed.com...
     Isn't there any way to convert, or documentation on the different
 standards?  I looked at the Microsoft generated code and some SC++
generated
 code and I can't see any difference.  Does anyone even know the difference
or
 what the IDDE is failing to read or see in the source?  Is there a
parallel file
 that I need to generate?
     Even if it takes some effort I am willing to try since I would much
prefer
 to use the DM compiler.
     Thanks.
The trouble is I don't know and don't have the resources to work on the problem right now. It's been years since I looked at resource formats in detail. There's definitely a bug in the IDDE, though. The best I can suggest at the moment is to redo the resources, or use a resource editor to remove them from the exe and rebind them, etc.
Feb 22 2002
parent Andrew Corkan <acorkan icubed.com> writes:
Walter wrote:

 The trouble is I don't know and don't have the resources to work on the
 problem right now. It's been years since I looked at resource formats in
 detail. There's definitely a bug in the IDDE, though. The best I can suggest
 at the moment is to redo the resources, or use a resource editor to remove
 them from the exe and rebind them, etc.
Walter, I will post on the other news lists if anyone else has dealt with this problem. If you have, or know of, any documentation on ClassExpress please pass them on to me. I will do some experimenting when I get a chance, and let you know what I come up with. Thanks. Andy acorkan icubed.com
Feb 23 2002
prev sibling next sibling parent reply Andrew Corkan <acorkan icubed.com> writes:
Walter wrote:

 "Andrew Corkan" <acorkan icubed.com> wrote in message
 news:3C766268.D4A4173F icubed.com...
     What is the tool incompatibility when moving from MS VC++ to DM?  Is
 there a document describing this problem?
In general, to use resources in DM's IDDE, they need to have been created by DM's IDDE.
Walter, To clarify the problem: I tried porting over three MFC-based MSVC++ (ver 6) projects. I had to make some minor changes in the 'stdafx.h' file and they all compiled and ran just fine. When I tried to use ClassExpress I found that two projects could be edited fine, but one failed. There were no obvious differences in the projects, except that the one that failed had many more dialogs that the others. My conclusion is that IDDE is generally compatible for resource and class editing with MS VC++, but sometimes there is a problem and it can't correctly display the resource ID's and crashes. I realize that this is not a priority for you, but if you can pass along any information on how or what files ClassExpress needs to read, I can look into it further on my own time. Even just a list of the files and relationships that ClassExpress needs to read would be a good start. Thanks again for your help. Andy acorkan icubed.com
Feb 23 2002
parent reply "Walter" <walter digitalmars.com> writes:
Caveat: I didn't write ClassExpress and haven't investigated how it works.
But resources get bound into the .EXE file, and that should be the only file
it needs to read. -Walter

"Andrew Corkan" <acorkan icubed.com> wrote in message
news:3C77F28B.4DE53092 icubed.com...
 Walter wrote:

 "Andrew Corkan" <acorkan icubed.com> wrote in message
 news:3C766268.D4A4173F icubed.com...
     What is the tool incompatibility when moving from MS VC++ to DM?
Is
 there a document describing this problem?
In general, to use resources in DM's IDDE, they need to have been
created by
 DM's IDDE.
Walter, To clarify the problem: I tried porting over three MFC-based MSVC++
(ver 6)
 projects.  I had to make some minor changes in the 'stdafx.h' file and
they all
 compiled and ran just fine.  When I tried to use ClassExpress I found that
two
 projects could be edited fine, but one failed.  There were no obvious
 differences in the projects, except that the one that failed had many more
 dialogs that the others.
      My conclusion is that IDDE is generally compatible for resource and
class
 editing with MS VC++, but sometimes there is a problem and it can't
correctly
 display the resource ID's and crashes.
    I realize that this is not a priority for you, but if you can pass
along any
 information on how or what files ClassExpress needs to read, I can look
into it
 further on my own time.  Even just a list of the files and relationships
that
 ClassExpress needs to read would be a good start.
     Thanks again for your help.

 Andy
 acorkan icubed.com
Feb 23 2002
parent reply Andrew Corkan <acorkan icubed.com> writes:
Walter wrote:

 Caveat: I didn't write ClassExpress and haven't investigated how it works.
 But resources get bound into the .EXE file, and that should be the only file
 it needs to read. -Walter
I am sure this is not the case based on my experimenting this morning. I can edit the ".rc" file and add a new control, with a new IDC_ name, to an existing dialog box, and that ID name will appear when I open ClassExpress, even though it has not been defined in "resource.h" or before the program has been compiled. I am pretty certain that ClassExpress loads the .rc file, and also reads a ".cle" file to find out which .h and .cpp files contain the message maps, etc... It may also read the "resource.h" file. What is so strange is that when ClassExpress fails to load the correct ID's, it still is correctly loading the message maps and automation variable data. At this point I think the problem with ClassExpress is that it is hyper sensitive to the formatting of some of these files and cannot alert the user to the problem or gracefully deal with the problem. When I have more time I can try to identify the file that is causing these problems, and in the mean time I will see if anyone else responds to these posts. Other than this ClassExpress problem, all three MFC VC++ ver 6 projects were recompiled and run just fine! Andy
Feb 23 2002
parent "Walter" <walter digitalmars.com> writes:
"Andrew Corkan" <acorkan icubed.com> wrote in message
news:3C78127D.9E149A9F icubed.com...
     I am sure this is not the case based on my experimenting this morning.
I
 can edit the ".rc" file and add a new control, with a new IDC_ name, to an
 existing dialog box, and that ID name will appear when I open
ClassExpress, even
 though it has not been defined in "resource.h" or before the program has
been
 compiled.
     I am pretty certain that ClassExpress loads the .rc file, and also
reads a
 ".cle" file to find out which .h and .cpp files contain the message maps,
 etc...  It may also read the "resource.h" file.
     What is so strange is that when ClassExpress fails to load the correct
ID's,
 it still is correctly loading the message maps and automation variable
data.
     At this point I think the problem with ClassExpress is that it is
hyper
 sensitive to the formatting of some of these files and cannot alert the
user to
 the problem or gracefully deal with the problem.  When I have more time I
can
 try to identify the file that is causing these problems, and in the mean
time I
 will see if anyone else responds to these posts.
You're probably right.
     Other than this ClassExpress problem, all three MFC VC++ ver 6
projects were
 recompiled and run just fine!
Glad there's at least one bright spot!
Feb 23 2002
prev sibling parent reply Andrew Corkan <acorkan icubed.com> writes:
Problem Solved!

The problem was in the .rc file.  For what ever reason the project I brought
over had numbers (ie. 63552,10254,...) in place of menu resource ID's (ie.
IDM_FILE_OPEN,IDM_FILE_SAVE,...) in one of the menus.  After i went through and
replaced them with the correct resource ID defines, from "resource.h",
ClassExpress works fine!

Basically there is a problem parsing raw numbers for the ID's and ClassExpress
was choking on that.

The CD came yesterday and I am off and running.

Andy




Walter wrote:

 "Andrew Corkan" <acorkan icubed.com> wrote in message
 news:3C766268.D4A4173F icubed.com...
     What is the tool incompatibility when moving from MS VC++ to DM?  Is
 there a document describing this problem?
In general, to use resources in DM's IDDE, they need to have been created by DM's IDDE.
Feb 28 2002
parent "Walter" <walter digitalmars.com> writes:
Great!

"Andrew Corkan" <acorkan icubed.com> wrote in message
news:3C7EA3C9.BFA17251 icubed.com...
 Problem Solved!
Feb 28 2002