Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Problem beim Einbinden einer DLL (https://www.delphipraxis.net/153175-problem-beim-einbinden-einer-dll.html)

SlaterBenelli 23. Jul 2010 16:03

Problem beim Einbinden einer DLL
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Zusammen,

ich bin langsam ein wenig am verzweifeln und weis nicht wo ich noch schauen soll...

Ich wollte ein wenig experimentieren mit Twitter und hab mir dazu die QTwitLib.dll rausgesucht... Jetzt sollte es nach der Doku von assarbad eigentlich kein prob sein die Funktionen daraus einzubinden, aber ich bekomme das nicht hin...

Wie kann ich die funktionen richtig einbinden?

Habe es so versucht:

Delphi-Quellcode:
procedure login(Username, Password:String); external 'QTwitLib.dll';
procedure Logout; external 'QTwitLib.dll';
procedure PostNewStatus(Status:String); external 'QTwitLib.dll';
im anhang habe mal ein Screenshot von Dependency beigefügt...

die Funktionen wollte ich dann so ansprechen:

Delphi-Quellcode:
  login(form1.Username.Text,form1.Passwort.Text);
  PostNewStatus(form1.Text.Text);
  Logout;

wo liegt denn mein Denkfehler? Wenn ich ein Fragezeichen vor den Funktionsnamen stelle, oder den Funktionsnamen aus Dependency einfach rauskopiere, dann bekomme ich natürlich von Delphi eine Fehlermeldung wegen ungültiger Zeichen...

Gruß

Christian

Luckie 23. Jul 2010 16:16

AW: Problem beim Einbinden einer DLL
 
Was heißt: "bekomme es nicht hin"? Die Fehlermeldung kennt mein Delphi nicht.

ele 23. Jul 2010 17:24

AW: Problem beim Einbinden einer DLL
 
Es handelt sich dabei um eine C++ Bibliothek. Deshalb fehlt bei deinen Deklarationen das stdcall.

Das grössere Problem ist der Datentyp QString- welcher kaum mit einem Delphi String übereinstimmt. Du müsstest den QString in Delphi implementieren. Ich kann leider nicht weiterhelfen. In 5min ist bei mir Feierabend und Urlaub.

mkinzler 23. Jul 2010 17:31

AW: Problem beim Einbinden einer DLL
 
Oder man bastelt einen Wrapper in c++ der dies in C-Funktionen umlenkt

shmia 23. Jul 2010 17:43

AW: Problem beim Einbinden einer DLL
 
Du hast bei der DLL relativ schlechte Karten.
Die Funktionen haben keine normalen Namen sondern wurden durch einen C++ Compiler erzeugt.
Man nennt das decorated function names oder auch Name mangling.
Nur der passende(*) C++ Compiler kann diese Funktionen problemlos aufrufen.

*) leider gibt es keinen Standard für das Name Mangling.

Ausserdem deutet der Name der DLL an, dass QT verwendet wurde.
Nur mit C++ kommst du da weiter. :(

SlaterBenelli 25. Jul 2010 14:30

AW: Problem beim Einbinden einer DLL
 
ok, Danke für Eure Antworten...

Also wäre mein Versuch die so aufzurufen gar nicht falsch gewesen?

Kennt einer eine Twitter DLL die ich für meine Tests nehmen könnte?

Cheers

Chris

himitsu 25. Jul 2010 14:53

AW: Problem beim Einbinden einer DLL
 
Notfalls ... Soooo schwer ist die Twitter-API nun auch nicht.
Also warum nicht direkt mit dieser reden?
http://apiwiki.twitter.com/Twitter-API-Documentation

SlaterBenelli 27. Jul 2010 11:29

AW: Problem beim Einbinden einer DLL
 
Ok, bisher habe ich mich mit XML und so noch nicht wirklich beschäftigt... kennt einer ein Tutorial dazu?

Vielen Dank für Eure Hilfe!


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