Zum Inhalt springen

WinSCP als COM-Interface


Narf!

Empfohlene Beiträge

Ich programmiere mit VC++ und MFC. Bisher habe ich CFTPConnection usw. genutzt, um auf einem Server mit Dateiverzeichnissen zu arbeiten.

Jetzt brauche ich dazu SFTP. Das WinSCP bietet dazu die .Net Assemblys bzw. COM.

Wie kann ich WinSCP in das Visula Studio 2017 bzw. in mein Projekt einbinden, um das zu nutzen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja, beim COM-Interface hast du es ja nicht direkt mit den konkreten Datentypen zu tun, sondern mit Objekten, die du von der COM-Schnittstelle bekommst. Du musst also um die Beschaffenheit der Objekte bescheid wissen. Da kenne ich mich aber mit VC++ nicht aus, wie man letztendlich die COM-Schnittstelle nutzt. In C# gibt es die Methode Type.GetTypeFromProgID() um sich die ID zu einem Datentyp zu holen um dann per Activator.CreateInstance() eine Instanz des Datentypens zu machen.

Ich würde vielleicht auch eher die Assembly per NuGet einbinden. Das hat den Vorteil, dass man da direkt mit den konkreten Datentypen arbeiten kann. Wenn ich das richtig verstehe, ist das ja auch nur ein Wrapper.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Der NuGet-Paketmanager sollte eigentlich bekannt sein, wenn man mit .NET arbeitet.

In Visual Studio einfach mit der rechten Maustaste auf das Projekt klicken und "NuGet Pakete verwalten..." auswählen und dort das Paket WinSCP installieren. Dann kannst du halt die Datenklassen verwenden.

In der Dokumentation findet man zwar keine Beispiele für VC++ aber welche für C#, die man dann in die Sprache überführen müsste.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nicht sehr weit. Auch in meinem C++-Projekt kann ich das NuGet-Paket herunterladen bzw. installieren.

Trotzdem komme ich nicht an die COM-Interfaces ran. Ich kenne ja die Namen nicht. Und um eine lib-Datei zu erstellen brauche ich den Embarcadero C++ Builder. Dort muss man sich registrieren. Und nur für eine lib erstellen; ich weiß nicht.

'schuldigung wenn ich mich hier so anstelle. Mir fehlt die Erfahrung damit.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn du das NuGet-Paket installierst, kannst du direkt die Klassen verwenden und musst nicht über die COM-Schnittstelle mit WinSCP kommunizieren. Das machen die Klassen für dich. Ich kenne mich mit Visual C++ nicht besonders gut aus aber schaue dir doch die C#-Beispiele an und wandel den Code in Visual C++ selbst um.

Was hast du denn überhaupt vor? Wenn du dich nur per SFTP auf einen Server verbinden möchtest, gibt es ja auch andere Wege.

 

Bearbeitet von Whiz-zarD
Link zu diesem Kommentar
Auf anderen Seiten teilen

Leider kann man das nicht so einfach wandeln, da dazu entweder die lib-Datei notwendig wäre oder eben COM.

Ich möchte auf dem SFTP-Server in bestimmte Verzeichniss gehen, mir dort den Inhalt auflisten lassen und ggf. Ordner mit allem herunterladen und auch hochladen können. So wie ich das bisher mit FTP (CInternetSession, CFtpConnection) gemacht habe.

Für einen anderen Weg wäre ich dankbar.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...