delphi dll problem
Übersicht BlitzBasic
 BlitzBasic  Beginners-Corner
 Beginners-Corner| suc-sgorBetreff: delphi dll problem |  Di, Apr 22, 2008 16:18 Antworten mit Zitat   | |
|---|---|---|
| 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   PS: forum ewig lang durchsucht - ohne erfolg | ||
| ChristianK |  Di, Apr 22, 2008 16:34 Antworten mit Zitat   | |
|---|---|---|
| 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 |  Di, Apr 22, 2008 17:16 Antworten mit Zitat   | |
|---|---|---|
| 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   | ||
| suc-sgor |  Di, Apr 22, 2008 18:53 Antworten mit Zitat   | |
|---|---|---|
| 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;  | ||
Übersicht
 BlitzBasic
 BlitzBasic  Beginners-Corner
 Beginners-Corner
					Powered by phpBB © 2001 - 2006, phpBB Group
				



