Discussion:
Abnormal compiling error code
(too old to reply)
Hlmhv
2008-02-29 16:02:04 UTC
Permalink
Hello Everybody,

I'm just migrating my application from delphi 3.0 to Delphi 2007, but
all these present a compilation error like this:

"[Pascal Erreur fatale] UtestQuery.pas(7): F2051 L'unité ExtActns a été
compilée avec une version différente de StdActns.TEditAction"

or in english: "F2051 The ExtActns unit has been compiled with a
different version of StdActns.EditAction"


I already wiped out all my old DCU files before installing CodeGear Pro,
without solution of this problem..

Henri
Peter Below (TeamB)
2008-03-01 08:20:38 UTC
Permalink
Post by Hlmhv
Hello Everybody,
I'm just migrating my application from delphi 3.0 to Delphi 2007, but
"[Pascal Erreur fatale] UtestQuery.pas(7): F2051 L'unité ExtActns a
été compilée avec une version différente de StdActns.TEditAction"
or in english: "F2051 The ExtActns unit has been compiled with a
different version of StdActns.EditAction"
I already wiped out all my old DCU files before installing CodeGear
Pro, without solution of this problem..
This sounds as if your old D3 project contains explicit references
(with path) to D3 VCL units. Do you still have D3 installed on your
development machine?

Rename the projects dsk and cfg files or move them to another folder.
Delete the dproj file. OPen the dpr file in D2007 to recreate a win32
D2007 project. Do a Project -> view source and check the dpr files Uses
clause for references to RTL and VCL units that contain a path. Remove
them.

You will have to go into the project options and redo things like
adding an icon, setting up the version information, adding
project-specific search path entries or conditional defines, but at
least you will not get unwanted baggage from the D3 project.
--
Peter Below (TeamB)
Don't be a vampire (http://slash7.com/pages/vampires),
use the newsgroup archives :
http://www.tamaracka.com/search.htm
http://groups.google.com
Hlmhv
2008-03-01 09:54:13 UTC
Permalink
Post by Peter Below (TeamB)
Post by Hlmhv
Hello Everybody,
I'm just migrating my application from delphi 3.0 to Delphi 2007, but
"[Pascal Erreur fatale] UtestQuery.pas(7): F2051 L'unité ExtActns a
été compilée avec une version différente de StdActns.TEditAction"
or in english: "F2051 The ExtActns unit has been compiled with a
different version of StdActns.EditAction"
I already wiped out all my old DCU files before installing CodeGear
Pro, without solution of this problem..
This sounds as if your old D3 project contains explicit references
(with path) to D3 VCL units. Do you still have D3 installed on your
development machine?
Rename the projects dsk and cfg files or move them to another folder.
Delete the dproj file. OPen the dpr file in D2007 to recreate a win32
D2007 project. Do a Project -> view source and check the dpr files Uses
clause for references to RTL and VCL units that contain a path. Remove
them.
You will have to go into the project options and redo things like
adding an icon, setting up the version information, adding
project-specific search path entries or conditional defines, but at
least you will not get unwanted baggage from the D3 project.
OK, your solution is right. Now I can compile.. but the EXE file give a
ECONVERTERROR message, without any extra explonation. I suppose that
Delphi 2007 is more "sensible" than the old 3.0 one?

As I debug, is it possible to definitively close the CPU window?

Have a nice day,

Henri
Peter Below (TeamB)
2008-03-02 09:13:33 UTC
Permalink
Post by Hlmhv
OK, your solution is right. Now I can compile.. but the EXE file give
a ECONVERTERROR message, without any extra explonation. I suppose
that Delphi 2007 is more "sensible" than the old 3.0 one?
No, not in this area. Make sure you have the checkboxes for debug
information checked on the project options compiler page (not on the
linker page!). Also check the "use debug DCUs" checkbox. Rebuild the
project. The IDE should now stop at the line that causes the error.
This will probably be inside some VCL unit, but you can use the call
stack window to figure out which code in your own units caused the
error.

A likely cause is that the locale configuration is different on your
current PC than on the one you last ran your D3 app on. You probably
have made the (unfortunately common) error of using a string constant
containing a floating point number or date, which you convert to a
number or datetime in code. That will fall over with an EConvertError
if the decimal separator or the date format is different from what used
in your string constants.
Post by Hlmhv
As I debug, is it possible to definitively close the CPU window?
If the debugger has no source information for the location it will have
to show the CPU window. What else should it do?
--
Peter Below (TeamB)
Don't be a vampire (http://slash7.com/pages/vampires),
use the newsgroup archives :
http://www.tamaracka.com/search.htm
http://groups.google.com
Hlmhv
2008-03-02 17:56:57 UTC
Permalink
Post by Peter Below (TeamB)
Post by Hlmhv
OK, your solution is right. Now I can compile.. but the EXE file give
a ECONVERTERROR message, without any extra explonation. I suppose
that Delphi 2007 is more "sensible" than the old 3.0 one?
No, not in this area. Make sure you have the checkboxes for debug
information checked on the project options compiler page (not on the
linker page!). Also check the "use debug DCUs" checkbox. Rebuild the
project. The IDE should now stop at the line that causes the error.
This will probably be inside some VCL unit, but you can use the call
stack window to figure out which code in your own units caused the
error.
I did this, without modification. Oh yes: I obtain another error:
"EExternalexception in the ntdll.dll module". And D 2007 crashes!
Post by Peter Below (TeamB)
A likely cause is that the locale configuration is different on your
current PC than on the one you last ran your D3 app on. You probably
have made the (unfortunately common) error of using a string constant
containing a floating point number or date, which you convert to a
number or datetime in code. That will fall over with an EConvertError
if the decimal separator or the date format is different from what used
in your string constants.
Of course your explonations are clear. But I don't understand why a
solid and tested code would give this kind of error on D 2007 and NOT in
D 3.
Post by Peter Below (TeamB)
Post by Hlmhv
As I debug, is it possible to definitively close the CPU window?
If the debugger has no source information for the location it will have
to show the CPU window. What else should it do?
Do you know where D 2007 stocks the configuration of his compiler? I
just pointed out that the settings of the compiler aren't saved between
two sessions of programmation...
Peter Below (TeamB)
2008-03-02 17:34:58 UTC
Permalink
Post by Hlmhv
Post by Peter Below (TeamB)
Post by Hlmhv
OK, your solution is right. Now I can compile.. but the EXE file
give a ECONVERTERROR message, without any extra explonation. I
suppose that Delphi 2007 is more "sensible" than the old 3.0 one?
No, not in this area. Make sure you have the checkboxes for debug
information checked on the project options compiler page (not on the
linker page!). Also check the "use debug DCUs" checkbox. Rebuild the
project. The IDE should now stop at the line that causes the error.
This will probably be inside some VCL unit, but you can use the call
stack window to figure out which code in your own units caused the
error.
"EExternalexception in the ntdll.dll module". And D 2007 crashes!
Hm, I suspect that this problem (and perhaps the other one too) is
caused by a 3rd-party component you are using in your application or
some add-in you have installed in the IDE. Going from D3 to D2007 is a
big jump and 3rd-party components tend to change a lot more than the
RTL and VCL source, which has always been very compatibel across
versions.
Post by Hlmhv
Of course your explonations are clear. But I don't understand why a
solid and tested code would give this kind of error on D 2007 and NOT
in D 3.
You were not very clear about whether the D3-build application was
tested on the same machine than the D2007-build one. If the D3 build
one works and the D2007 one does not, on the same machine, then it
cannot be the problem I mentioned above.
Post by Hlmhv
Do you know where D 2007 stocks the configuration of his compiler?
The project options are stored in the projects DPROJ file, on older
versions they were stored into the projects cfg file, if memory serves.
This file is only updated when you do a Save all for the project, or if
you have automatic saving of the project files active (a setting the
Tools->Options dialog. first page) and run the program.
--
Peter Below (TeamB)
Don't be a vampire (http://slash7.com/pages/vampires),
use the newsgroup archives :
http://www.tamaracka.com/search.htm
http://groups.google.com
Hlmhv
2008-03-03 11:53:24 UTC
Permalink
Post by Peter Below (TeamB)
Post by Hlmhv
Post by Peter Below (TeamB)
Post by Hlmhv
OK, your solution is right. Now I can compile.. but the EXE file
give a ECONVERTERROR message, without any extra explonation. I
suppose that Delphi 2007 is more "sensible" than the old 3.0 one?
No, not in this area. Make sure you have the checkboxes for debug
information checked on the project options compiler page (not on the
linker page!). Also check the "use debug DCUs" checkbox. Rebuild the
project. The IDE should now stop at the line that causes the error.
This will probably be inside some VCL unit, but you can use the call
stack window to figure out which code in your own units caused the
error.
"EExternalexception in the ntdll.dll module". And D 2007 crashes!
Hm, I suspect that this problem (and perhaps the other one too) is
caused by a 3rd-party component you are using in your application or
some add-in you have installed in the IDE. Going from D3 to D2007 is a
big jump and 3rd-party components tend to change a lot more than the
RTL and VCL source, which has always been very compatibel across
versions.
Your proposition is quite effective, but I use no 3rd-party component
but TDBGraph, which is given with Delphi...
Post by Peter Below (TeamB)
Post by Hlmhv
Of course your explonations are clear. But I don't understand why a
solid and tested code would give this kind of error on D 2007 and NOT
in D 3.
You were not very clear about whether the D3-build application was
tested on the same machine than the D2007-build one.
Yes, I kept the same machine.
If the D3 build
Post by Peter Below (TeamB)
one works and the D2007 one does not, on the same machine, then it
cannot be the problem I mentioned above.
Post by Hlmhv
Do you know where D 2007 stocks the configuration of his compiler?
The project options are stored in the projects DPROJ file, on older
versions they were stored into the projects cfg file, if memory serves.
This file is only updated when you do a Save all for the project, or if
you have automatic saving of the project files active (a setting the
Tools->Options dialog. first page) and run the program.
OK now. I thanks you for your help.
Loading...