Mit Modem ins Internet, C++ Klassen benutzen
-
Hallo C-Sharpisten !
Hätte da mal die eine oder andere Frage.
Die eine:
Gibt es denn bei C# oder .NET eine Funktion zum Dfü-Eintrag erstellen und ins Internet einwählen ? Hab gesucht wie blöd, nichts gefunden !So und die andere wäre:
Wie kann man C++ Klassen benutzen ?Gruß,
p.
-
mit .net wird glaube ich eine dauernde verbindung (wie dsl) vorausgesetzt. die klassen vom framework haben daher keine funktionalität, um eine dfü-verbindung zu eröffnen oder zu schliessen; du musst das auf eine andere art machen.
deine c++ klassen kannst du eventuell via com einbinden, aber das ist eine realitv komplexe sache. wenn du die klassen nicht von anfang an mit com programmiert hast, wirst du einiges umschreiben müssen. die andere variante ist, dass du entweder direkt mit c++/cli programmierst, oder darin einen wrapper schreibst, mit dem du von c# aus arbeiten kannst.
-
mit .net wird glaube ich eine dauernde verbindung (wie dsl) vorausgesetzt.
Ja ne is klar.
-
deine c++ klassen kannst du eventuell via com einbinden, aber das ist eine realitv komplexe sache. wenn du die klassen nicht von anfang an mit com programmiert hast, wirst du einiges umschreiben müssen. die andere variante ist, dass du entweder direkt mit c++/cli programmierst, oder darin einen wrapper schreibst, mit dem du von c# aus arbeiten kannst.
Siehe Screenshot:
http://www.freefileupload.net/file.php?file=files/060206/1139265035/Studio.JPG
Beispielcode:
#ifndef MATHLIB_H #define MATHLIB_H class MathTest { const double* values; int l; public: void SetValues( const double* newValues,int length); double GetMinValue(); }; #endif #include "stdafx.h" #include "MathLib.h" void MathTest::SetValues(const double* newValues,int length) { l=length; values = newValues; } double MathTest::GetMinValue() { double temp =values[0]; for(int i =0;i<l;i++) { if(values[i]<temp) temp=values[i]; } return temp; }
managed c++
// Managed C++.h #pragma once using namespace System; #include "MathLib.h" namespace ManagedC { public __gc class MathLibWrapper : public System::IDisposable { MathTest* wrappedObj; public: MathLibWrapper(); void SetValues(double newValues __gc[]); double GetMinValue(); void Dispose(); }; } // This is the main DLL file. #include "stdafx.h" #include "Managed C++.h" namespace ManagedC { MathLibWrapper::MathLibWrapper() { wrappedObj = new MathTest(); } void MathLibWrapper::SetValues(double rowlb __gc[]) { double __pin* pRowlb = &(rowlb[0]); wrappedObj->SetValues(pRowlb,rowlb->Length); } double MathLibWrapper::GetMinValue() { return wrappedObj->GetMinValue(); } void MathLibWrapper::Dispose() { delete wrappedObj; } }
using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Collections; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { using (ManagedC.MathLibWrapper wrapper = new ManagedC.MathLibWrapper()) { wrapper.SetValues(new double[]{4.5,3,2.3,5.4}); double v=wrapper.GetMinValue(); Console.WriteLine(v); Console.ReadLine(); } } } }