AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Globale Variable in DLL (?)

Ein Thema von Mao · begonnen am 24. Feb 2007 · letzter Beitrag vom 26. Feb 2007
Antwort Antwort
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, 18: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
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Globale Variable in DLL (?)

  Alt 24. Feb 2007, 18:44
Ich seh hier nirgends was, wie das Result überhaupt auf -1 kommen könnte

Sach mal... bist du dir sicher, dass DOMDocument40 das IXMLDOMDocument2 implementiert?
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von Mao
Mao

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

Re: Globale Variable in DLL (?)

  Alt 24. Feb 2007, 19:23
Oh, ich hatte den Rückgabewert der Funktion bei einem Fehler auf die Laufvariable i gesetzt - um zu sehen, wieviele Objekte er wirklich erstellt. Nun, es ist kein einzigstes. (Code oben jetzt berichtigt...)

Der Unterschied des Variablentyps mit der Klasse des Konstruktors sollte eigentlich funktionieren - ich hab mich hier mal ganz an das XML-Tutorial aus der DP gehalten.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Globale Variable in DLL (?)

  Alt 24. Feb 2007, 21:53
Ich tipp mal drauf das du in der DLL kein CoInitialize aufrufst. In einer "normalen" Exe-Anwendung wird dies über Application.Initialize automatisch aufgerufen.
Weiter Hilfe wenn du die Forensuche bemühst.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Mao
Mao

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

Re: Globale Variable in DLL (?)

  Alt 26. Feb 2007, 14:26
Hi.

Das war tatsächlich das Problem!

Jetzt läuft alles wunderbar, danke allen, die das gelesen und noch mehr denen, die geantwortet haben.

Greets,
Mao
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz