Entwickler-Ecke
Dateizugriff - hab kleines Prob mit dll
foxy - Mo 27.01.03 10:18
Titel: hab kleines Prob mit dll
huhu und moin ;)
also hab ein kleines Problem: ich habe meine dll so aufgebaut:
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
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??
Tino - 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 - 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!!!
KeinePanik - 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 :
Quelltext
1: 2: 3:
| function GetDateiDatum(const aName:String):String; [b]stdcall[/b]; var // ... |
und dann so aufrufen :
Quelltext
1: 2:
| function GetDateiDatum(const aName:String):String; [b]stdcall[/b]; external 'funcdll.dll'; |
//edit:
Edit wieder gelöscht :D
foxy - 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
Delete - Mo 27.01.03 15:30
Hast du das mal gelesen beim Erstellen deiner DLL:
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 - Mo 27.01.03 15:41
^^ war ich zu faul aber danke für den hinweis ;)
foxy - 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
Tino - 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 - Di 28.01.03 09:36
Die xxx.exe ist verknüpft mit dem fehlenden Export-xxx.dll:getPath.
genau so lautet der Fehler ....
KeinePanik - Di 28.01.03 14:02
Falsche Dateiangabe ... Pfad der *.dll im Quelltext deiner Exe stimmt nicht ...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!