AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Dll benutzen in einer Consolen Anwendungen
Thema durchsuchen
Ansicht
Themen-Optionen

Dll benutzen in einer Consolen Anwendungen

Ein Thema von Dr.No · begonnen am 1. Jan 2006 · letzter Beitrag vom 7. Feb 2006
Antwort Antwort
Dr.No

Registriert seit: 18. Mär 2005
38 Beiträge
 
#1

Dll benutzen in einer Consolen Anwendungen

  Alt 1. Jan 2006, 21:45
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!
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#2

Re: Dll benutzen in einer Consolen Anwendungen

  Alt 1. Jan 2006, 22:15
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
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
JocalAreaNetwork

Registriert seit: 19. Aug 2005
35 Beiträge
 
Delphi 2006 Architect
 
#3

Re: Dll benutzen in einer Consolen Anwendungen

  Alt 1. Jan 2006, 22:43
Die muss dann allerdings auch noch in der DLL als stdcal; deklariert werden.
  Mit Zitat antworten Zitat
Sascha_OW

Registriert seit: 4. Aug 2005
Ort: Owschlag
129 Beiträge
 
Delphi 2005 Professional
 
#4

Re: Dll benutzen in einer Consolen Anwendungen

  Alt 7. Feb 2006, 09:56
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:
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.
und dann die Unit wo ich die Function aufrufe:
Delphi-Quellcode:
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.
Vielen Dnake vieleicht kann mir ein helfen
















Edit by Sascha:


hat sich erledigt, habe es selbst gefunden, es war das exports was fehlte und eimn begin
Sascha Schwarz
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Dll benutzen in einer Consolen Anwendungen

  Alt 7. Feb 2006, 10:00
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?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

Re: Dll benutzen in einer Consolen Anwendungen

  Alt 7. Feb 2006, 10:05
Schau mal hier. Das könnte dir weiterhelfen.

MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Sascha_OW

Registriert seit: 4. Aug 2005
Ort: Owschlag
129 Beiträge
 
Delphi 2005 Professional
 
#7

Re: Dll benutzen in einer Consolen Anwendungen

  Alt 7. Feb 2006, 12:18
läuft ja jetzt alles, jetzt habe ich meine kleine FDP dll
Sascha Schwarz
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:12 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