![]() |
Dll benutzen in einer Consolen Anwendungen
Also ich hab ne Consolen Anwendung geschrieben, und wollte dann mit dem dll-experte ne dll erstellen, und da ne procedure rein schreiben, aber der hat da so nen fehler dann immer gebracht:
Die Anwendung kann nicht initalisiert werden (0xc000007b). Kicken sie... Mein code in der Haiptanwendung ist dann so: program Haupt; uses Sysutils; procedure Hmenu; external 'was.dll'; begin Hmenu; end; und in der dll: library was; procedure Hmenu; var s:string; begin writeln('Hallo'); readln(s); end; begin end. ABer wenn ich jetzt das ganze als funktion schreibe in der dll statt procedure tuts. Woran liegt das, und wie mach ich das mit den proceduren? ALso ich freu mich schon auf schöne antworten! |
Re: Dll benutzen in einer Consolen Anwendungen
Hier gibt es [delphi]-Tags, die man für Code benutzen kann! :)
[pre] procedure Hmenu; stdcall; external 'was.dll'; [/pre] --- edit aus delphi mach pre, komisch :p |
Re: Dll benutzen in einer Consolen Anwendungen
Die muss dann allerdings auch noch in der DLL als stdcal; deklariert werden.
|
Re: Dll benutzen in einer Consolen Anwendungen
Hallo,
ich habe das gleiche Problem. Will ne FTP DLL Schreiben vileicht kann mir ja jemand helfen IN der DLL:
Delphi-Quellcode:
library Project2;
{ Important note about DLL memory management: ShareMem must be the first unit in your library's USES clause AND your project's (select Project-View Source) USES clause if your DLL exports any procedures or functions that pass strings as parameters or function results. This applies to all strings passed to and from your DLL--even those that are nested in records and classes. ShareMem is the interface unit to the BORLNDMM.DLL shared memory manager, which must be deployed along with your DLL. To avoid using BORLNDMM.DLL, pass string information using PChar or ShortString parameters. } uses SysUtils, Classes, IdFTP; {$R *.res} function FTPConnect (Server: String; User: String; PWDFTP: String): boolean; stdcall; var con : TIDFTP; begin con := TIDFTP.Create; con.Host := Server; con.Username := User; con.Password := PWDFTP; con.Connect; IF con.Connected then result := true else result := false; end; end. und dann im Program selbst, die Unit wo die DLL eingebunden wird:
Delphi-Quellcode:
und dann die Unit wo ich die Function aufrufe:
unit Unit2;
interface function FTPConnect (Server: String; User: String; PWDFTP: String): boolean; stdcall; implementation function FTPConnect (Server: String; User: String; PWDFTP: String): boolean; stdcall; external 'project2.dll'; end.
Delphi-Quellcode:
Vielen Dnake vieleicht kann mir ein helfen
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdFTP, StdCtrls, ExtCtrls, unit2; type TForm1 = class(TForm) Button1: TButton; Timer1: TTimer; Label1: TLabel; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; connec: boolean; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin connec := FtpConnect ('**************', '************', '***********'); end; procedure TForm1.FormCreate(Sender: TObject); begin connec := false; end; procedure TForm1.Timer1Timer(Sender: TObject); begin IF Connec then Label1.Color := clgreen else Label1.Color := CLRed; end; end. Edit by Sascha: hat sich erledigt, habe es selbst gefunden, es war das
Delphi-Quellcode:
was fehlte und eimn
exports
Delphi-Quellcode:
begin
|
Re: Dll benutzen in einer Consolen Anwendungen
Als aller erstes: Der dicke, fett, nicht zu übersehende Kommentar wird nicht umsonst vom DLL-Erperten oben in der Unit eingefügt. Einfach mal durchlesen. Wenn es dann immer noch Probleme gibt, kannst du noch mal genauer nachfragen. Am besten in einem neuen Thread mit deinem spezifischen Problem.
Zweitens: Wo sind die Funktionan aus der DLL in der aufrufenden Unit deklariert? Drittens: Wie lauten die Fehlermeldungen? :? |
Re: Dll benutzen in einer Consolen Anwendungen
|
Re: Dll benutzen in einer Consolen Anwendungen
läuft ja jetzt alles, jetzt habe ich meine kleine FDP dll
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz