Frage zu Visual C++ Express
-
tupan schrieb:
Übrigens, es lag weniger an meiner Unfähigkeit zu lesen, als es vielmehr ein Flüchtigkeitsfehler war, dass ich deinen Namen falsch schrieb, also ProChild anstatt ProgChild. Entschuldige bitte! Nichts für ungut
Akzeptiert
Btw. wenn du die .NET Klassenbibliothek verwendest, kannst du kein "richtiges" C++ verwenden, sonder (soweit ich weis) nur Managed C++. Wenn du also den C++ Compiler, der richtige Executeables erzeugt, benutzten willst, kommst du nicht an der MFC oder anderen C++ Klassenbibliotheken vorbei...
-
hm...verstehe.
Ich hoffe, es ist okay, hier einen Link zu posten. Du wirst die Infos dort sicher nicht brauchen, für mich aber als Anfänger sind sie sehr interessant.
Ich poste den Link mal, nur damit ich klarmachen kann, wie meine Frage gemeint war.
http://www.microsoft.com/germany/msdn/library/net/VonVisualCPlusPlusZuVisualCPlusPlusNET.mspx?mfr=trueGrüße
tupan
-
Das ist eigentlich ehr ein Microsoft Propaganda-Artikel. Microsoft versucht mit .NET die Entwickler an Windows zu binden. Darum empfehlen sie ja auch, dass möglichst alle Leute .NET benutzen sollen.
.NET macht eig. nur richtig Sinn in Kombination mit C#. Es kann sicher nicht schaden, C++ zu lernen. Es gibt erheblich mehr Klassenbibliotheken für C++, als für C# (oder andere .NET-Sprachen) und das wird sich auch so schnell nicht ändern, da es sich kaum für irgendeine Firma lohnt, ihre Software mit hohem finanziellen Aufwand auf C# zu portieren, nur um Microsofts Monopolstellung zu fördern...
-
ich gebe dir absolut recht. Stört mich auch, dass das das einzige brauchbare war bezüglich des Themas. Auf die Schnelle fand ich nichts anderes.
Microsft forciert .net ganz gewaltig und möchte natürlich, dass die Entwickler drauf aufspringen. Es gibt nur einen Umstand, der mich wundert:
Mit .net soll man ja Programme schreiben können, die keiner Installation bedürfen. Im besten Fall also einfach in ein Verzeichnis kopieren und es läuft. Vorausgesetzt, das Framework ist installiert natürlich. Ob dem so ist, vermag ich nicht zu sagen. Jedenfalls soll auch das Löschen entsprechend funktionieren, also einfach Ordner löschen - fertig.
Komischerweise - .net gibt es ja schon ein paar Jahre, angeblich verwenden es auch jede Menge Entwickler inzwischen. Ich frage mich nur: wieso findet man dann an Windows Programmen nie ein .net Programm? Oder kennst du eins, was man so kennen müßte?
Übrigens, grundsätzlich zum Thema Microsoft: Ich stehe der Monopolstellung auch sehr skeptisch gegenüber. Für mich ist Microsoft ein besseres Marketing Unternehmen, als dass es für technische Überlegenheit stünde. Aber ich will sie auch nicht schlechtreden. Alles hat seine Vor und Nachteile.
Dass ich durchaus skeptisch bin, soll meine Zuneigung(herrje, ob das der richtige Begriff dafür ist?) zu Linux dokumentieren. Ich habe Debian Sarge installiert, seit ein paar Tagen auch Ubuntu aus Neugierde.Grüße
tupan
-
tupan schrieb:
Mit .net soll man ja Programme schreiben können, die keiner Installation bedürfen. Im besten Fall also einfach in ein Verzeichnis kopieren und es läuft. Vorausgesetzt, das Framework ist installiert natürlich. Ob dem so ist, vermag ich nicht zu sagen. Jedenfalls soll auch das Löschen entsprechend funktionieren, also einfach Ordner löschen - fertig.
Das bezieht sich, glaub ich, nicht auf die Programme an sich, sondern auf die Componenten. Einfache Win32 Programme kann man ja auch einfach enpacken und wieder löschen. Problematisch wird es erst bei DCOM Componenten, die registriert werden müssen. Das sollte mit .NET einfacher werden.
tupan schrieb:
Komischerweise - .net gibt es ja schon ein paar Jahre, angeblich verwenden es auch jede Menge Entwickler inzwischen. Ich frage mich nur: wieso findet man dann an Windows Programmen nie ein .net Programm? Oder kennst du eins, was man so kennen müßte?
Spontan fällt mir kein wichtiges ein. Ich hab auf meinem Computer bis jetzt auch noch nie das .NET-Framework installieren müssen. Nun benutze ich allerdings auch nicht sooo viele Programme.
tupan schrieb:
Übrigens, grundsätzlich zum Thema Microsoft: Ich stehe der Monopolstellung auch sehr skeptisch gegenüber. Für mich ist Microsoft ein besseres Marketing Unternehmen, als dass es für technische Überlegenheit stünde. Aber ich will sie auch nicht schlechtreden. Alles hat seine Vor und Nachteile.
Dass ich durchaus skeptisch bin, soll meine Zuneigung(herrje, ob das der richtige Begriff dafür ist?) zu Linux dokumentieren. Ich habe Debian Sarge installiert, seit ein paar Tagen auch Ubuntu aus Neugierde.Ich finde es nur wichtig, dass man sich von solchen Unternehmen nicht zu sehr Abhängig macht, weil man sonst ziemlich schnell Probleme bekommen könnte.
-
was die Monopolstellung angeht, soviel ich weiss, soll die nächste Windows version noch regider sein bezüglich Einschränkungen. Aus Sicht von Microsoft nachvollziehbar vielleicht, aus Sicht des Users untragbar. Allein die Tatsache, dass man, wenn sich in gewissem Umfang Hardware ändert, eine erneute Registrierung fällig ist. Ein gutes hat es: Vielleicht fühlen sich mehr und mehr User derart gegängelt, dass sich Open Source wie Linux immer mehr durchsetzt. Das bliebe zu hoffen.
Zum Thema .net und einfache Installation. Ich beziehe mich auf das Folgende Statement eines Tutorials:
Weitergabe Ein .NET-Programm weiterzugeben ist viel einfacher geworden – insbesondere im Vergleich zu einem auf COM basierenden Programm, das Einträge in die Registrierungsdatenbank vornehmen muss. Im einfachsten Fall reicht es vollkommen aus, ein .NET-Programm (EXE- oder DLL-Datei) in das dafür vorgesehene Verzeichnis zu kopieren. Darüber hinaus ist aber auch die Verteilung mit einem Installationsassistenten und, ganz neu unter .NET 2.0, mit ClickOnce möglich.
Grüße
tupan
-
Wenn ProgChild kein .Net installiert hat, hat er auch kein VisualC++? Oder...
Also, das VisualC++ (die IDE!) ist weiterhin größtenteils in C++ geschrieben ohne .NET. .NET wird benötigt, da VC++ _auch_ .NET-Entwicklung erlaubt. Aber wie ProgChild schon sagt, VC++ ist nur ein Tool. Man kann C++ auch programmieren, in dem man ein in Basic geschriebene IDE benutzt. Ist völlig irrelevant.
Dann zu der einfachen Installation: Seit Windows XP kann man auch COM- und ActiveX-Objekte programmieren, die nicht registriert werden müssen. Hier scheint bei vielen noch eine Wissenlücke zu bestehen. Somit ist das Thema COM-Registrierung ab WinXP irrelevant!
OneClick für .NET-Programme: es geht darum, das man ähnlich wie bei "Java Webstart" ein Programm über eine Website mit einem Click lokal auf dem PC starten kann. Dabei werden die nötigen Dateien (EXE, DLLs usw.) herunter geladen und gestartet. Keine Zauberei oder ähnliches. Theoretisch kann ich eine in C++ geschriebe EXE auf meiner Homepage direkt verlinken und der User kann diese von dort aus starten (sie wird herunter geladen und einfach gestaret). Leider müssen viele Programme aber in die Registry schreiben, so das man dieses meistens von einem Installer erledigen lässt. Theoretisch könnte dies auch ein Programm selbst erledigen.
Viele C++ Programme laufen auch ohne Installation. Oder was macht ihr, wenn ihr ein HelloWorld in C++ programmiert? Installiert ihr das auch bevor ihr es testen könnt?
Nein, natürlich nicht. Installation ist bei vielen Simplen Programmein nur eine User-Unterstützung, z.B. das ein Start-Menü-Eintrag angelegt wird u.ä. Es hat selten was mit COM-Registrierung oder so zu tun.
OneClick liesse sich auch mit C++ Programmen durchführen, hätte MS mal dieses Konzept für native Win32-Programme ganz einfach entwickelt. Haben sie aber einfach nicht. Es hat nichts mit "unmöglich in C++" zu tun. Es müsste halt einfach nur gemacht werden.
-
Hallo Artchi,
zum thema Com Componenten ohne Registrierung, hast du da vielleicht einen Link für mich? Ich kenne es halt nur so, dass Com Komponeten immer registriert werden müssen. Inwiefern XP da anders verfährt, würde mich sehr interessieren.
Grüße
tupan
-
Einen Link habe ich leider nicht zur Hand, da ich darüber etwas im deutschen MSDN Magazin gelesen hatte. Muß eine der letzten Ausgaben gewesen sein.
Im MSDN meines VC2003 ist zwar nicht der Artikel drin, aber ein paar Infos:
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1031/cpguide/html/cpconconfiguringcomcomponentsforregistration-freeactivation.htmSchau mal in der MSDN-Indexliste unter "COM-Interop ohne Registrierung". Die Beschreibungen sind zwar nicht Tutorial-mäßig, aber vielleicht hilfts ja.
Hier mal Copy&Paste daraus der erste Abschnitt:
COM-Interop ohne Registrierung aktiviert eine Komponente, ohne die Windows-Registrierung zum Speichern von Assemblyinformationen zu verwenden. Anstatt eine Komponente während der Entwicklung auf einem Computer zu registrieren, erstellen Sie zur Entwurfszeit Win32-Manifestdateien, die Informationen über Bindung und Aktivierung enthalten. Diese Manifestdateien steuern anstelle der Registrierungsschlüssel die Aktivierung eines Objekts.
Die Aktivierung der Assemblies ohne Registrierung anstelle der Registrierung beim Entwurf bietet zwei Vorteile:
- Sie können steuern, welche DLL-Version aktiviert wird, wenn mehrere Versionen auf einem Computer installiert sind.
- Endbenutzer können mit XCOPY oder FTP die Anwendung in ein gewünschtes Verzeichnis auf dem Computer kopieren. Die Anwendung kann dann von diesem Verzeichnis aus ausgeführt werden.In diesem Abschnitt werden die beiden Arten von Manifesten beschrieben, die für COM-Interop ohne Registrierung erforderlich sind: Anwendungs- und Komponentenmanifeste. Diese Manifeste sind XML-Dateien. Ein Anwendungsmanifest wird durch einen Anwendungsentwickler erstellt und enthält Metadaten zur Beschreibung von Assemblies und Assemblyabhängigkeiten. Ein Komponentenmanifest wird von einem Komponentenentwickler erstellt und enthält Informationen, die andernfalls in der Windows-Registrierung enthalten sind.
Also, auch C++ Programme müssen ab WinXP kein großes "Traraaa!" mehr veranstalten, kopieren/downloaden und starten. Ist kein echtes OneClick, aber egal...
-
Registration-Free COM Interop
http://msdn2.microsoft.com/fh1h056hSimplify Application Deployment with Registration-Free COM
http://www.codeguru.com/columns/kate/article.php/c12441/