Einzelnen Beitrag anzeigen

Benutzerbild von Mao
Mao

Registriert seit: 4. Dez 2006
Ort: Dresden
75 Beiträge
 
Turbo Delphi für Win32
 
#1

Globale Variable in DLL (?)

  Alt 24. Feb 2007, 19:40
Hi DP'ler.

Wieder einmal hoffe ich, in der richtigen Kategorie gelandet zu sein.
Es geht um folgendes Problem: Ich möchte gerne 256 XML-Dokumente gleichzeitig öffnen (bzw. erstmal erstellen) und das in einer DLL. Ein einzigstes Array nimmt die 256 Objekte auf. Nur hab ich damit irgendwie ein Problem. In der DLL gibt der Code -1 zurück, verwende ich ihn normal in einem Programm wird alles problemlos ausgeführt.
Es geht um folgenden DLL-Code (gekürzt):
Delphi-Quellcode:
{...}

uses
  ShareMem, SysUtils, Classes, MSXML2_TLB;

{$R *.res}

{...}

var
  DB: Array[0..255] of IXMLDOMDocument2;

{...}
function DBInit: Integer;
var
  i: Integer;
begin
  Result:=0;
  for i:=0 to 255 do begin
    try
      DB[i]:=CoDOMDocument40.Create;
      DB[i].setProperty('NewParser', True);
    except
      Result:=-1;
      Exit;
    end;
  end;
end;

{...}
In der Anwendung, die verwendet wird, wird der Prototyp von mir folgendermaßen deklariert:
function DBInit: Integer; external 'dblib.dll'; Hat irgendjemand eine Ahnung, was daran nicht geht bzw. an was das liegt?

Danke schonmal für's Lesen,
Mao

/edit: Code gaaaanz geringfügig editiert (Rückgabewert der Funktion bei Fehler).
  Mit Zitat antworten Zitat