Autor Beitrag
foxy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 814

Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
BeitragVerfasst: Mo 27.01.03 10:18 
huhu und moin ;)

also hab ein kleines Problem: ich habe meine dll so aufgebaut:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
function GetDateiDatum(const aName:String):String;
var fh     :THandle;
    fdata  :TWin32FindData;
    ft, wt :TFileTime;
    st     :TSystemTime;
begin 
  Result:='';
  fh:=FindFirstFile(PChar(aName), fdata);
  if (fh<>Invalid_Handle_Value) then 
  begin
    ft:=fdata.ftLastWriteTime;
    FileTimeToLocalFileTime(ft, wt); 
    FileTimeToSystemTime(wt, st);
    with st do Result:=Format('%0.2d.%0.2d.%0.4d', [wDay, wMonth, wYear]);
  end;
  Windows.FindClose(fh);
end;

exports
  GetDateiDatum;
begin

ich rufe die auf mit
ausblenden Quelltext
1:
2:
function GetDateiDatum(const aName:String):String; 
external 'funcdll.dll';

jetzt kommt da aber immer Zeigerfehler ... kann mir einer sagen, was da falsch ist... ich habe das nach anleitung des Tuts gemacht kommt aber so ein komischer fehler und ich bekomme den nicht weg ...

zur Info noch kurz ich habe breakpoints gesetzt also er greift auf die dll zu und auch auf die function nur er verlässt sie nimma
weis einer den fehler auf anhieb??

_________________
"Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mo 27.01.03 10:43 
Hi foxy,

hast Du die Funktion GetDateiDatum mal direkt in Dein Programm eingefügt und aufgerufen (also ohne eine DLL)? Wenn nicht dann probier es mal und schau ob der Fehler auch dann passiert und vor allem wo!

Gruß
TINO
foxy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 814

Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
BeitragVerfasst: Mo 27.01.03 10:49 
Ok ich mach das ma ... aber ich denke nicht, dass das passiert,
1. weil wie gesagt habe ich in der kompletten func. breakpoints gesetzt und die funzt einwandfrei bis exports dann kommt der fehler ....
aber ich versuche das ma ...

Nachtreg also die function geht !!! ligt an der dll!!!

_________________
"Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
KeinePanik
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 131



BeitragVerfasst: Mo 27.01.03 10:57 
Also so wie ich das sehe, kannst du bei der Funktionsdeklaration innerhalb der Dll auch noch ein stdcall; schreiben :

ausblenden Quelltext
1:
2:
3:
function GetDateiDatum(const aName:String):String; [b]stdcall[/b];
var
// ...


und dann so aufrufen :

ausblenden Quelltext
1:
2:
function GetDateiDatum(const aName:String):String; [b]stdcall[/b];
external 'funcdll.dll';


//edit:

Edit wieder gelöscht :D

_________________
Es gibt keine dummen Fragen ... Nur blöde Antworten !!!


Zuletzt bearbeitet von KeinePanik am Mo 27.01.03 11:08, insgesamt 2-mal bearbeitet
foxy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 814

Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
BeitragVerfasst: Mo 27.01.03 11:02 
ok ich versuchs

Nachtrag : JAAA :) mega THX geht nun ... hab ich voll verpeilt das steht au im Tut :roll:
hehe vielen dank

_________________
"Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 27.01.03 15:30 
Hast du das mal gelesen beim Erstellen deiner DLL:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
library Project2;

{ Wichtiger Hinweis zur DLL-Speicherverwaltung: ShareMem muß sich in der
  ersten Unit der unit-Klausel der Bibliothek und des Projekts befinden (Projekt-
  Quelltext anzeigen), falls die DLL Prozeduren oder Funktionen exportiert, die
  Strings als Parameter oder Funktionsergebnisse übergeben. Das gilt für alle
  Strings, die von oder an die DLL übergeben werden -- sogar für diejenigen, die
  sich in Records und Klassen befinden. Sharemem ist die Schnittstellen-Unit zur
  Verwaltungs-DLL für gemeinsame Speicherzugriffe, BORLNDMM.DLL.
  Um die Verwendung von BORLNDMM.DLL zu vermeiden, können Sie String-
  Informationen als PChar- oder ShortString-Parameter übergeben. }


uses
  SysUtils,
  Classes;

{$R *.res}

begin
end.

:roll:
foxy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 814

Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
BeitragVerfasst: Mo 27.01.03 15:41 
^^ war ich zu faul aber danke für den hinweis ;)

_________________
"Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
foxy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 814

Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
BeitragVerfasst: Di 28.01.03 09:32 
hi all ich wieder sagt ma wenn ich doch noch eine function in die dll machen will, muss ich die doch einfach da reinsetzen, und dann unter exports einfach den namen hinzufügen oder??... weil dann bringt er mir fehler insbezüglich auf die dll

_________________
"Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Di 28.01.03 09:34 
Hallo Foxy,

foxy hat folgendes geschrieben:
muss ich die doch einfach da reinsetzen, und dann unter exports einfach den namen hinzufügen oder??

Ja.

foxy hat folgendes geschrieben:
weil dann bringt er mir fehler insbezüglich auf die dll

Und wie lautet dieser Fehler?

Gruß
TINO
foxy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 814

Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
BeitragVerfasst: Di 28.01.03 09:36 
Die xxx.exe ist verknüpft mit dem fehlenden Export-xxx.dll:getPath.

genau so lautet der Fehler ....

_________________
"Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
KeinePanik
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 131



BeitragVerfasst: Di 28.01.03 14:02 
Falsche Dateiangabe ... Pfad der *.dll im Quelltext deiner Exe stimmt nicht ...

_________________
Es gibt keine dummen Fragen ... Nur blöde Antworten !!!