AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ftp mit wininet

Ein Thema von ulilüding · begonnen am 21. Mai 2012 · letzter Beitrag vom 30. Mai 2012
Antwort Antwort
Seite 1 von 2  1 2      
ulilüding

Registriert seit: 23. Okt 2010
Ort: Berlin
33 Beiträge
 
Delphi 5 Professional
 
#1

ftp mit wininet

  Alt 21. Mai 2012, 09:05
Delphi-Version: 5
Hi Leute,

ein Service-Programm greift u.A. auf einen FTP-server per FTPCommand zu. Dazu wird die wininet.pas eingebunden, das Kommando wird übegeben mit (Auszug aus Programmcode)

FtpCommand(connection_handle,true,FTP_TRANSFER_TYP E_ASCII,PChar('LIST '+currentDirectory),0,@data_handle)

sieht man sich wininet.pas an so wird die Sache einfach weitergereicht an die wininet.dll (winetdll ist als Konstante für wininet.dll deklariert)

function FtpCommand; external winetdll name 'FtpCommandA';

Die Parameter des Aufrufs stimmen anscheinened (Auszug ebenfalls aus der wininet.pas)

function FtpCommand(hConnect: HINTERNET; fExpectResponse: BOOL; dwFlags: DWORD; lpszCommand: PChar; dwContext: DWORD; phFtpCommand: PHINTERNET): BOOL; stdcall;

Nun zum Problem:
- Das ganze unter WIN XP kompiliert laüft einwandfrei (nutzt wininet.dll von XP)
- Dieses Kompilat als exe unter WIN 7 läuft einwandfrei (nutzt wininet.dll von WIN 7)
- Versuch, den gleichen code unter WIN 7 zu kompilieren, scheitert mit der Bemerkung: zu viele Parameter. Offensichtlich hält der Compiler die Angabe des data-handle-Pointer für überflüssig. Läßt man den weg, so wird brav kompiliert, aber das Programm hängt sich an dieser Stelle natürlich auf (wohin auch mit der LIST?)

Die wininet.pas ist unter beiden Bettriebssystemen identisch. Die wininet.dll kann auf beiden Betriebssystemen unterschiedlich sein, allerdings benutzt die unter XP kompilierte exe die WIN 7 dll offensichtlich problemlos. Unter beiden Betreibssystemen läuft eine identische Delphi 5 Installation.

Dankbar für jede schlaue Idee
Uli Lüding
eben der mit space
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: ftp mit wininet

  Alt 22. Mai 2012, 18:43
Was gibt denn GetLastError beim crash aus?
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
ulilüding

Registriert seit: 23. Okt 2010
Ort: Berlin
33 Beiträge
 
Delphi 5 Professional
 
#3

AW: ftp mit wininet

  Alt 25. Mai 2012, 09:38
tja, leider crashed das prg nicht, sondern bleibt beim Aufruf mit dem FTPCommand einfach stehen. Muß man dann per taskmanager beenden. Ein getLastError wird nicht mehr ereeicht. Selbst die "If-clause" des eigenen Aufrufs steht (if (FTPCommand(blabla...) else (jeglichen Mißerfolg anzeigen)). Blöd, was? (ich oder die Angelegenheit)
LG Uli
eben der mit space
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: ftp mit wininet

  Alt 25. Mai 2012, 10:02
Ich habe auf meiner Homepage einen nonVCL FTP-Client mit Source. Probier doch den mal aus.
http://michael-puff.de/Programmierung/Delphi/Programme/
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: ftp mit wininet

  Alt 25. Mai 2012, 11:00
- Versuch, den gleichen code unter WIN 7 zu kompilieren, scheitert mit der Bemerkung: zu viele Parameter. Offensichtlich hält der Compiler die Angabe des data-handle-Pointer für überflüssig.
Dann muss da aber irgendein Unterschied sein...
Welche Parameter werden denn dort angezeigt, wenn du die Klammer hinter den Befehl schreibst? (Oder dahinter Strg + Shift + Leertaste drückst)
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
ulilüding

Registriert seit: 23. Okt 2010
Ort: Berlin
33 Beiträge
 
Delphi 5 Professional
 
#6

AW: ftp mit wininet

  Alt 26. Mai 2012, 11:41
nun, die eingabe von "ftpcommand(" zeigt genu das, was zu vemuten war: der pointer auf die "Ablage" = @data_handle wird nicht mehr gewünscht. Da scheint also unter WIN 7 eine andere wininet.dll am Werk zu sein als unter WIN XP. Die (unter XP kompilierte) exe benutzt möglichweise was anderes, da gibt es ja noch jede Menge "migrations". Vielleicht muß man der wininet.pas von WIN 7 sagen, welche wininet.dll sie nehmen soll (aber welche ist das?). Idee, wie man das rauskriegt?
Danke für Eure Hilfe
LG Uli
eben der mit space
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: ftp mit wininet

  Alt 26. Mai 2012, 12:10
Naja, Moment... die wininet.pas kommt von Delphi, nicht vom Betriebssystem. Die Unit müsste also dieselbe sein. Benenne doch deinen Delphi-Ordner einfach mal um und kopiere den vom anderen PC.

(Wobei Delphi 5 unter Win 7 eher im XPMode Sinn macht..)
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
ulilüding

Registriert seit: 23. Okt 2010
Ort: Berlin
33 Beiträge
 
Delphi 5 Professional
 
#8

AW: ftp mit wininet

  Alt 27. Mai 2012, 09:14
Das ist völlig richtig. Die Delphi-Installation ist die gleiche, also auch die wininet.pas (zumal ich die schon hin- und herkopiert habe, ohne Erfolg). Der Unterschied muß in der (jeweils verwendeten) wininet.dll liegen. Ich vermute, daß WIN7 das XP-Kompilat als solches erkennt und für die "Weiterletung" (mehr macht die wininet.pas de facto ja nicht) die entsprechende dll bereitstellt. Will man hingegen unter WIN 7 kompilieren, so bekommt der Kompiler bzw. die exe die dll angereicht, bei der der letzte Parameter fehlt (warum auch immer). Deine Idee, D5 im "XPmode" zu betreiben, klingt nach einer guten Idee. Als WIN7-rookie sei mir erlaubt zu fragen, wie das bewerkstelligt wird (obwohl Ihr Euch wahrscheinlich gerade totlacht) Danke für die Hilfe, und Danke auch an luckie für die source, darin war allerdings kein ftpCommand zu finden, hat also nix geholfen.

LG Uli
eben der mit space
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: ftp mit wininet

  Alt 27. Mai 2012, 09:33
Wie du die Funktion aufrufen kannst, das heißt deren Parameter beim Kompilieren, stehen in der Unit drin und nicht in der DLL. Wenn es also dieselbe Unit ist, dann ist auch der Aufruf derselbe.

Irgendetwas stimmt da nicht...
Ich bin im Moment noch unterwegs, aber heute Abend wieder zu Hause. Dann kann ich im virtuellen PC bei Delphi 5 schauen wie es bei mir aussieht.

Was den XPMode angeht:
Die notwendigen Dateien kannst du von Microsoft hier herunterladen, sofern du nicht nur eine Home Edition von Windows hast. Der steht nämlich erst ab der Professional zur Verfügung.
Bei den Home Editions bietet sich eine andere Virtualisierungslösung wie VirtualBox, VMWare oder der alte Virtual PC an.
http://www.microsoft.com/windows/vir.../download.aspx
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
ulilüding

Registriert seit: 23. Okt 2010
Ort: Berlin
33 Beiträge
 
Delphi 5 Professional
 
#10

AW: ftp mit wininet

  Alt 30. Mai 2012, 11:05
habe gerade nochmal in der wininet.pas nachgeschaut: da steht der genau der FTPCommand-Aufruf drin wie oben in meinem Startbeitrag angegeben, also MIT dem Pointer auf data_handle. Trotzdem wird dieser Parameter bei der Eingabe von "FTPCommand(" nicht mit aufgeführt und somit nicht erwartet. Könnte der Compiler unter WIN 7 "klammheimlich" eine andere wininet.pas nehmen (und wo ist die dann?). Glaube ich eher nicht. Es scheint so, als ob delphi 5 unter WIN 7 diese Funktion nicht richtig "liest"? In voller Ahnungslosigkeit

LG Uli
eben der mit space
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 05:13 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