Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi BDS 2006 Delphi-DLL-Problem (https://www.delphipraxis.net/75097-bds-2006-delphi-dll-problem.html)

GrafSoftie 14. Aug 2006 13:16


BDS 2006 Delphi-DLL-Problem
 
Hallo zusammen,

Hat scho mal jemand mit BDS 2006 eine Delphi-DLL geschrieben ?
Ich habe den allseits beliebten DLL-Experten aufgerufen (Doppelklick
in der Tool-Palette). Der hat dann folgenden Code produziert, der sich
unter Delphi 7 problemlos übersetzen läßt:

Delphi-Quellcode:
library GDSCEdit;

{ Wichtiger Hinweis zur DLL-Speicherverwaltung: ShareMem muss sich in der
  ersten Unit der unit-Klausel der Bibliothek und des Projekts befinden (Projekt-
  Quelltext anzeigen), falls die DLL Prozeduren oder Funktionen exportiert, die
  Strings als Parameter oder Funktionsergebnisse übergeben. Das gilt für alle
  Strings, die von oder an die DLL übergeben werden -- sogar für diejenigen, die
  sich in Records und Klassen befinden. Sharemem ist die Schnittstellen-Unit zur
  Verwaltungs-DLL für gemeinsame Speicherzugriffe, BORLNDMM.DLL.
  Um die Verwendung von BORLNDMM.DLL zu vermeiden, können Sie String-
  Informationen als PChar- oder ShortString-Parameter übergeben. }

uses
  SysUtils,
  Classes;

{$R *.res}

begin
end.
In meinem BDS 2006 bekomme ich die Fehlermeldung, ohne dass ich eine einzige Zeile programmiert hab:

F2092 Das Programm oder die Unit 'Variants' ruft sich selbst wieder auf ????? :wiejetzt:

[edit=sakura] [delphi]-Tags. Mfg, sakura[/edit]

Meflin 14. Aug 2006 13:20

Re: BDS 2006 Delphi-DLL-Problem
 
Kann ich nicht nachvollziehen
Delphi-Quellcode:
library Project1;

{ Wichtiger Hinweis zur DLL-Speicherverwaltung: ShareMem muss sich in der
  ersten Unit der unit-Klausel der Bibliothek und des Projekts befinden (Projekt-
  Quelltext anzeigen), falls die DLL Prozeduren oder Funktionen exportiert, die
  Strings als Parameter oder Funktionsergebnisse übergeben. Das gilt für alle
  Strings, die von oder an die DLL übergeben werden -- sogar für diejenigen, die
  sich in Records und Klassen befinden. Sharemem ist die Schnittstellen-Unit zur
  Verwaltungs-DLL für gemeinsame Speicherzugriffe, BORLNDMM.DLL.
  Um die Verwendung von BORLNDMM.DLL zu vermeiden, können Sie String-
  Informationen als PChar- oder ShortString-Parameter übergeben. }


uses
  SysUtils,
  Classes;

{$R *.res}

begin
end.
geht fehlerfrei! sollte der Fehler nur in der Code-Insight Fehlerdingens angezeigt werden, dann versuchs einfach trotzdem. Das haut nämlich nicht immer so ganz hin ;) Kommt der Fehler vom compiler, ist das was anderes :stupid:

Und du bist dir sicher dass der Fehler zu dem code gehört?

http://acira.net/sig.png

sakura 14. Aug 2006 13:21

Re: BDS 2006 Delphi-DLL-Problem
 
Ich habe auch keine Probleme mit dem Code bzw. einer neuen DLL.

...:cat:...

GrafSoftie 14. Aug 2006 13:31

Re: BDS 2006 Delphi-DLL-Problem
 
Hallo Leute,

danke für die schnelle Antwort.
Ich habe das BDS neu gestartet, in der Tool-Palette unter Delphi-Projekte
auf den zweiten Button doppel-geklickt, was den Code erstellt.
Blöderweise kann ich das Ergebnis nicht sofort übersetzen, weil BDS ins neue Projekt
die Suchpfade nicht einträgt. Sind die von Hand nach getragen, und das Projekt
unter einem beliebigen Namen gespeichert kommt es bei der Übersetzung
zu der Fehlermeldung, und zwar vom Compiler !
[Pascal Fataler Fehler] Variants.pas(1035): F2092 ...

Meflin 14. Aug 2006 14:31

Re: BDS 2006 Delphi-DLL-Problem
 
Zitat:

Zitat von GrafSoftie
Blöderweise kann ich das Ergebnis nicht sofort übersetzen, weil BDS ins neue Projekt
die Suchpfade nicht einträgt. Sind die von Hand nach getragen, und das Projekt
unter einem beliebigen Namen gespeichert kommt es bei der Übersetzung
zu der Fehlermeldung, und zwar vom Compiler !
[Pascal Fataler Fehler] Variants.pas(1035): F2092 ...

ähh... was GENAU meinst du eigentlich mit "übersetzen" :gruebel:


GrafSoftie 14. Aug 2006 14:46

Re: BDS 2006 Delphi-DLL-Problem
 
Äh sorry, hab mich unklar ausgedrückt. Ich meinte Compilieren bzw. Projekt erstellen ...
Warum BDS die Pfade nicht eingetragen hat ist mir inzwischen klar - Die
Standardeinstellungen für Projekte waren nicht richtig konfiguriert. :wall:
Nur mit dem Compilieren klappt es immer noch nicht.
Wenn ich dasselbe mit der C++ Personality in BDS mache dann compiliert der Code problemlos. :|


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:18 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