Autor Beitrag
Boldar
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1555
Erhaltene Danke: 70

Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
BeitragVerfasst: Mi 18.06.08 17:27 
Hallo,
ich habe ein merkwürdiges Problem. Ich erstelle ein Formular aus einer dll heraus mit folgendem code:
(code in der dll)
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure showan(appHandle: THandle); stdcall;
begin
  if appHandle = 0 then apphandle := GetActiveWindow;
  Application.Handle := appHandle;
  try
    with TAnzeigefenster.Create(Application) Do
      try
        ShowModal
      finally
        Free;
      end
  except
    On E: Exception Do Application.HandleException(E);
  end;
  Application.Handle := 0;
end;


nun greife ich aus der create-methode des erstellten formulars auf eine Variable aus der Unit zu, die die procedure der dll aufruft. Die variable ist vom typ tfield, der als
ausblenden Delphi-Quelltext
1:
type tfield = array [1..101..10of boolean					

deklariert ist. Nun hat aber komischerweise dieselbe Instanz davon unterschiedliche Werte, nähmlich wenn ich die Instanz aus dem durch die dll erstelltem Formular aufrufe, immer 100 mal false, in anderen Units oder Formularen den richtigen Wert. Wie kann das sein??

Moderiert von user profile iconNarses: Code- durch Delphi-Tags ersetzt
Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mi 18.06.2008 um 17:51
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 19.06.08 13:15 
Du hast also die selbe Unit in die DLL und das Hauptprojekt eingebunden?

Dann greifst du aber natürlich auch auf die jeweils eingebundene Version zu und jeweils eigene Speicherbereiche für deine Variablen.
Boldar Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1555
Erhaltene Danke: 70

Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
BeitragVerfasst: Do 19.06.08 14:52 
miuttlerweeise habe ich die instanz von tfield in einer dritten unit deklariert, aber es geht immer noch nicht. Wie kann man dass Problem lösen??