Managed Code
-
Hab mir das mal eben angeguckt.
Das ist C#.
Guck da mal
http://www.c-plusplus.net/forum/viewtopic-var-t-is-173908-and-highlight-is-dll+einbinden.html
-
Ja, im wesentlichen geht's darum, wie man eine c# library einbetten kann.
Ich denke, das geht über das Schlüsselwort#using <OpenFTP.dll>
using namespace OpenFTP;Das wird brav kompliliert, auch die c# Datei lässt sich einbetten, aber ich weiß trotzdem nicht, wie man mit dem Ausgangsmaterial die Library nutzbar machen kann
@Doug_HH Schönen Dank für den Hinweis, aber so richtig weitergeholfen hat's nicht.
-
Wo hast Du den die OpenFTP.dll her?
Habe die da nicht auf der Seite gefunden.
-
Ein unglaublich schlanker Code, das war's, was mir gefallen hat:
-
Das was uns hier vorliegt, ist der Code der DLL.
Man könnte den in C++/CLI umschreiben, damit man die LIB bekommt.
Habe das aber mal eben anders gemacht.
Wir benutzen nun nur die DLL.
Musst nur noch den Pfad angeleichen.
Vergiss nicht die DLL über#using "OpenFTP.dll"
einzubinden...
und...
using namespace OpenFTP;
zu setzen...
OpenFTP::FTP^ f = gcnew OpenFTP::FTP; f->Connect("127.0.0.1", "username_here", "password_here"); f->ChangeDirectory("somedirectory"); f->Files->Upload(Path->GetFileName(sFileName), Path->GetFileName(sFileName)); while (!f->Files->UploadComplete) { Console.WriteLine("Uploading: TotalBytes: " + f->Files->TotalBytes->ToString() + ", : PercentComplete: " + f->Files->PercentComplete->ToString()); } Console.WriteLine("Upload Complete: TotalBytes: " + f->Files->TotalBytes->ToString() + ", : PercentComplete: " + f->Files->PercentComplete->ToString()); f->Disconnect(); f = null;
Musst mal gucken ob Du damit weiter kommst!?
-
herzlichen Dank, Doug, für die Mühe
dll ist eingebunden, ich habe auch auf die Klasse Zugriff.
Sonderbarerweise funktioniert Dein Konstruktor nicht. Da bekomme ich eine FehlermeldungOpenFTP::FTP^ f = gcnew OpenFTP::FTP;
Das hingegen lässt sich kompilieren:
OpenFTP::FTP* f = new OpenFTP::FTP();
Ist das ok?
Clr habe ich angestellt, weil ich in der Datei Threads benutze. Das sieht etwa so aus:#using <mscorlib.dll> using namespace System; using namespace System::Threading; public __gc class ScannerThreading { ... }
-
Wenn ich das so schreibe bekomme ich eine Fehlermeldung.
FTPKonsole.cpp(13) : error C3699: "*": Diese Referenzierung kann nicht für den Typ "OpenFTP::FTP" verwendet werden.
Hast Dur schon Erfolg gehabt?
Wenn ja, sag mir bitte was Du geändert hast.
Wäre nett.
-
der OP hat VS2002/2003. Du hast VS2005. In VS2005 kannst Du auch die "alte" Syntax verwenden, wenn mit "/clr:oldsyntax" compiliert wird.
-
Doug, dank für die Mühe.
Ja, das liegt daran, dass ich Visual Studio 2003 verwende.
Zwar kann das ja auch C#, aber wie's scheint, lässt sich das nicht mit C++ verbinden. Jedenfalls streikt das Programm, wenn ich den gecnew Operator benutze.Noch irgendeine Idee?
-
Percy2000 schrieb:
Doug, dank für die Mühe.
Ja, das liegt daran, dass ich Visual Studio 2003 verwende.
Zwar kann das ja auch C#, aber wie's scheint, lässt sich das nicht mit C++ verbinden. Jedenfalls streikt das Programm, wenn ich den gecnew Operator benutze.Benutze ich den new Operator, wird's kompiliert, aber die Funktion wird trotzdem nicht ausgeführt. Warst Du Deinerseits erfolgreich mit dem Connect?
Noch irgendeine Idee?
-
Kann Dir da jetzt nicht wirklich helfen.
Hab auch schon einiges versucht.
Dann rumst Dir das doch erstmal in C# rein um zu sehen ob es überhaupt funzt.