delphi dll problem

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

suc-sgor

Betreff: delphi dll problem

BeitragDi, Apr 22, 2008 16:18
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab da ein kleines problem meine delphi dlls richtig in meine bb programme einzubinden
nur ma so zum testen z.b.
Code: [AUSKLAPPEN]
library dlltest;

uses
  SysUtils,
  Classes,
  Dialogs;

function DllMessage(t:integer):string; export;
begin
  ShowMessage('Hello world from a Delphi '+inttostr(t)+'DLL') ;
  DllMessage   :='Hallo 123';
end;

exports DllMessage;

begin
end.


meine .delcs :
Code: [AUSKLAPPEN]

.lib "dlltest.dll"
DllMessage$(t%): "DllMessage";


der bb-code :
Code: [AUSKLAPPEN]
tmp$= DllMessage$(1)
Print tmp$


.. nun die frage ... warum erhalte ich nach dem start die nachricht
"Hello world from a Delphi DLL" ... also ohne meinen integer t%
... danach ne error meldung - "blitzcc.exe muss geschlossen werden" ??

ich bin mir sicher einer von euch profis kann mir da weiter helfen Very Happy

PS: forum ewig lang durchsucht - ohne erfolg
 

ChristianK

BeitragDi, Apr 22, 2008 16:34
Antworten mit Zitat
Benutzer-Profile anzeigen
DLL-Funktionen müssen immer "stdcall" als Aufrufkonvention haben. Ich bin mir zwar nicht sicher, ob das den Fehler verursacht, aber es muss auf jeden Fall da hin:

Code: [AUSKLAPPEN]
function DllMessage( t:integer ):string; stdcall;
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

suc-sgor

BeitragDi, Apr 22, 2008 17:16
Antworten mit Zitat
Benutzer-Profile anzeigen
eine leichte verbesserung : "Hello world from a Delphi 0DLL" - nun steht ne 0 vor "DLL" ... aber noch nich ganz das was ich such.


beim aufruf von
Code: [AUSKLAPPEN]
Print DllMessage$(1)

erhalte ich "Hello world from a Delphi 1048575DLL"

... aber immer wieder diese fehlermeldung Crying or Very sad
 

suc-sgor

BeitragDi, Apr 22, 2008 18:53
Antworten mit Zitat
Benutzer-Profile anzeigen
vielen dank ChristianK, ich hab die Lsg gefunden.
... für alle die es interessiert:

der fehler lag in der zeile :
Code: [AUSKLAPPEN]
function DllMessage(t:integer):string; export;

richtig ist:
Code: [AUSKLAPPEN]
function DllMessage(t:integer):pchar; stdcall;

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group