AGB  ·  Datenschutz  ·  Impressum  







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

Dll implementation

Ein Thema von ghost007 · begonnen am 28. Mär 2008 · letzter Beitrag vom 28. Mär 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#1

Dll implementation

  Alt 28. Mär 2008, 09:31
Hallo,
ich hab nun lange nicht mehr mit dlls geatbeitet und bin nun dabei eine neue zu erstellen.
Nur will die irgendwie nicht wie ich will.
Folgender code:
Delphi-Quellcode:
library Project1;

uses
  ShareMem,
  SysUtils,
  Classes;

type
  TMyRec = record
  x : integer;
  y : integer;
  title : String;
end;

function GetKoord(x,y:integer;title:string):string; stdcall;

implementation

begin

function GetLang(x,y:integer;title:string):string;
 begin
  result:='test';
 end;

end.
Liefert mir folgende Fehlermeldung:
Zitat von Delphi 7:
';' expected but 'IMPLEMENTATION' found
was mach ich falsch ?

MfG - Ghost007
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
Benutzerbild von STS301
STS301

Registriert seit: 6. Nov 2007
668 Beiträge
 
Delphi 7 Personal
 
#2

Re: Dll implementation

  Alt 28. Mär 2008, 09:40
versuche es einmal so:

Delphi-Quellcode:
library Project1;

uses
  ShareMem,
  SysUtils,
  Classes;
{$R *.RES}
type
  TMyRec = record
  x : integer;
  y : integer;
  title : String;
end;

implementation

function GetLang(x,y:integer;title:string):string; stdcall;
begin
  result:='test';
end;

begin

end.
Sebastian

ölpölp

Linux will rule the universe!!
  Mit Zitat antworten Zitat
DelphiKlaus

Registriert seit: 18. Okt 2006
100 Beiträge
 
Delphi 6 Professional
 
#3

Re: Dll implementation

  Alt 28. Mär 2008, 09:57
Hey,

wenn ich das richtig in Erinnerung habe, kommt das Schlüsselwort implementation nur bei Units vor. Bei Libraries machts ja auch keinen Sinn. Aber in einer Library sollten die zu exportierenden Funktionen gekennzeichnet sein.

MfG

Klaus
  Mit Zitat antworten Zitat
DenSchub

Registriert seit: 4. Jun 2006
Ort: Balingen
209 Beiträge
 
#4

Re: Dll implementation

  Alt 28. Mär 2008, 10:33
Einfach ohne "implementation", dann geht das:

Delphi-Quellcode:
library Project1;

uses
  ShareMem,
  SysUtils,
  Classes;
{$R *.RES}
type
  TMyRec = record
  x : integer;
  y : integer;
  title : String;
end;


function GetLang(x,y:integer;title:string):string; stdcall;
begin
  result:='test';
end;

begin

end.
Dennis Schubert
Ground Zero is nichts gegen mein Schreibtisch.
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#5

Re: Dll implementation

  Alt 28. Mär 2008, 10:35
jup, geht.

//EDIT:
Nur wenn ich die dll wie folgt in ein projekt einbinde:
function GetLang(form,lang,control:string):string; stdcall; external 'Projekt1.dll'; Dann passiert noch nichts. (Beim kompilieren)
Verwende ich die funktion jedoch z.b. wie folgt:
ShowMessage(GetLang(1,2,'bla')); Dann sagt er mir, gleich beim kompilieren:
Zitat von Delphi 7:
Die Abwendung konnte nicht richtig initialisiert werden (0xc000007b).

Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
wido

Registriert seit: 2. Jan 2006
122 Beiträge
 
#6

Re: Dll implementation

  Alt 28. Mär 2008, 11:07
Wenn Du den Code oben übernommen hast, dann fehlt Dir eine wichtige Kleinigkeit: Du hast keine Funktionen exportiert. Probier es mal so:

Delphi-Quellcode:
library Project1;

uses
  ShareMem,
  SysUtils,
  Classes;
 
{$R *.RES}
 
type
  TMyRec = record
  x : integer;
  y : integer;
  title : String;
end;

function GetLang(x,y:integer;title:string):string; stdcall;
begin
  result:='test';
end;

// Liste der exportierten Funktionen durch , getrennt: exports Funktion1, Funktion2, ... ;
exports GetLang;

begin
end.
Die Funktion wirst Du übrigens ausschließlich in Delphi Anwendungen nutzen können, weil Du ausschließlich Strings benutzt. Damit zerstörst Du sämtliche Kompatibilität. Denk auch daran ebenfalls in Deiner Anwendung ShareMem als ERSTE Unit vor allen anderen Units einzubinden und die BORLNDMM.DLL mit Deiner Anwendung und DLL auszuliefern.

Alternativ kann ich Dir auch gerne erklären, wie Du ohne das BORLNDMM.DLL und ShareMem Geraffel aus kommst und deine DLL auch kompatibel zu anderen Programmiersprachen gestaltest.
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#7

Re: Dll implementation

  Alt 28. Mär 2008, 11:19
Zitat von wido:
Alternativ kann ich Dir auch gerne erklären, wie Du ohne das BORLNDMM.DLL und ShareMem Geraffel aus kommst und deine DLL auch kompatibel zu anderen Programmiersprachen gestaltest.
Hi,
die kompatibilität brauch ich nicht, da diese dll zu 100% nur von mir verwendet wird. Aber das angebot mit dem "Geraffel" nehm ich liebend gern an.

MfG - Ghost007

//EDIT: das mit dem exports wars ... wie konnte ich das nur vergessen
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
wido

Registriert seit: 2. Jan 2006
122 Beiträge
 
#8

Re: Dll implementation

  Alt 28. Mär 2008, 11:40
Zitat von ghost007:
die kompatibilität brauch ich nicht, da diese dll zu 100% nur von mir verwendet wird. Aber das angebot mit dem "Geraffel" nehm ich liebend gern an.
Naja, wieso erstellst Du überhaupt ne DLL und packst die Funktionen nicht einfach in ne stink normale Unit, wenn eh nur Du die Sachen verwenden willst?
  Mit Zitat antworten Zitat
Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#9

Re: Dll implementation

  Alt 28. Mär 2008, 12:58
Zitat von wido:
Zitat von ghost007:
die kompatibilität brauch ich nicht, da diese dll zu 100% nur von mir verwendet wird. Aber das angebot mit dem "Geraffel" nehm ich liebend gern an.
Naja, wieso erstellst Du überhaupt ne DLL und packst die Funktionen nicht einfach in ne stink normale Unit, wenn eh nur Du die Sachen verwenden willst?
hm,
das ist eigentlich ne gute frage ... bin mir mal gedanken da drüber machen. Meld mich nochmal wenn ich die dll doch haben will ^^

Danke
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat
Benutzerbild von STS301
STS301

Registriert seit: 6. Nov 2007
668 Beiträge
 
Delphi 7 Personal
 
#10

Re: Dll implementation

  Alt 28. Mär 2008, 15:37
für Updates sind die .dlls handlicher als die eingebundenen Units
Sebastian

ölpölp

Linux will rule the universe!!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:47 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