Hi all,
I have a perfect build
1>------ Build started: Project: Toolbox, Configuration: Debug AnyCPU ------
1> Toolbox -> E:\Users\C770817\SW-PROJEKTE\Spezpla-ISS-Root\Toolbox_1\bin\Debug\Toolbox.dll
2>------ Build started: Project: DATLIB, Configuration: Debug ------
2> DATLIB -> E:\Users\C770817\SW-PROJEKTE\Spezpla-ISS-Root\DATLIB\bin\Debug\DATLIB.dll
3>------ Build started: Project: WORKSPACE, Configuration: Debug ------
3> WORKSPACE -> E:\Users\C770817\SW-PROJEKTE\Spezpla-ISS-Root\WORKSPACE\bin\Debug\WORKSPACE.dll
4>------ Build started: Project: P2CSMOD, Configuration: Debug ------
4> P2CSMOD -> E:\Users\C770817\SW-PROJEKTE\Spezpla-ISS-Root\P2CSMOD\bin\Debug\P2CSMOD.dll
5>------ Build started: Project: FMS_FUNKTIONEN, Configuration: Debug ------
5> FMS_FUNKTIONEN -> E:\Users\C770817\SW-PROJEKTE\Spezpla-ISS-Root\FMS_FUNKTIONEN\bin\Debug\FMS_FUNKTIONEN.dll
6>------ Build started: Project: IO_FUNKTIONEN, Configuration: Debug ------
6> IO_FUNKTIONEN -> E:\Users\C770817\SW-PROJEKTE\Spezpla-ISS-Root\IO_FUNKTIONEN\bin\Debug\IO_FUNKTIONEN.dll
7>------ Build started: Project: DATMOD, Configuration: Debug ------
7> DATMOD -> E:\Users\C770817\SW-PROJEKTE\Spezpla-ISS-Root\DATMOD\bin\Debug\DATMOD.dll
8>------ Build started: Project: DIA_FUNKTIONEN, Configuration: Debug ------
8> DIA_FUNKTIONEN -> E:\Users\C770817\SW-PROJEKTE\Spezpla-ISS-Root\DIA_FUNKTIONEN\bin\Debug\DIA_FUNKTIONEN.dll
9>------ Build started: Project: SRV_MODUL, Configuration: Debug ------
9> SRV_MODUL -> E:\Users\C770817\SW-PROJEKTE\Spezpla-ISS-Root\SRV_MODUL\bin\Debug\SRV_MODUL.dll
10>------ Build started: Project: DatmodOxyTest, Configuration: Debug ------
10> DatmodOxyTest -> E:\Users\C770817\SW-PROJEKTE\Spezpla-ISS-Root\DatmodOxyTest\bin\Debug\DatmodOxyTest.dll
========== Build: 10 succeeded, 0 failed, 2 up-to-date, 0 skipped ==========
No: 10, DatmodOxyTest is a VS Universal Unit Test Project: The source is:
namespace DatmodOxyTest;
interface
uses
System,
Microsoft.VisualStudio.TestTools.UnitTesting,
Toolbox,
DATLIB,
DATMOD,
SRV_MODUL,
SpezPlaDBSACC;
type
[TestClass()]
BasisModulTest = public class
public
[TestMethod()]
method DB_Connect;
[TestMethod()]
method DB_Disconnect;
end;
implementation
method BasisModulTest.DB_Connect;
begin
FKT_INIT('');
end;
method BasisModulTest.DB_Disconnect;
begin
FKT_BYE('');
end;
end.
I can set a breakpoint at FKT_INIT(’’); and it breaks
as soon as like to step into, or also just running all I get a type load excepetion.
Now; LTKONZ_Op is implemented, with many other Procedures in LTKONZ_MODUL.PAS which is one of the many pas files making up the DATMOD project, which you can see, builds perfect. Datlib.pas is a Interafce and type declaration file. All declared procedures are attributed external.
i.e.
(******************************************************************************)
(* Tabelle LTKONZ *)
TYPE
LTKONZ_Type = public RECORD
public // this makes all fields below public
KONZNR : String;
ZSTEIN : Datumtyp;
ZSTAUS : Datumtyp;
KNAME1 : String;
KNAME2 : String;
END;
PROCEDURE LTKONZ_Op( VAR Op: Op_Type; VAR Data: LTKONZ_Type );external;
PROCEDURE LTKONZ_Select1( VAR Op: Op_Type; VAR Data: LTKONZ_Type );external;
Regarding LTKONZ_Op the interface is, as you can see declared in the file datlib.pas which has some common type’s, some common vars and many interface to procedures declared but no implementation.
All interfaces wear the ‘external’ attribute, because the implementation is done in a more relevant module, for LTKONZ_Op that is in file LTKONZ_MODUL.PAS which is a member of the DATMOD project.
We have to do so do avoid circular references among the many DLL’s
So what can I do ?