Visual Studio 2005 - C++ Programme erstellen ohne .net Framework



  • Also ich selber habe damals nur die Beta von VC2005 auspronbiert. Von dem Problem hab ich aber hier öffters gelesen und ich habs auch schon auf MSDN gesehen. Aber wenn ich so die ersten Absätze vom Codeproject-Artikel lese, dann mußt du bei denem HelloWorld-Win32-Programm eigentlich CRT (C Runtime Lib) statisch linken, um das Distri-Problem zu umgehen. Wenn es dynamisch gelinkt wird, muß man wohl alle Steps durchgehen, die in dem Artikel drin stehen. Wie du es linkst, müsste in den Projekt-Einstellungen drin stehen. Schau da mal nach.

    Ansonst wird dir wohl hier jemand anders vielleicht besser helfen, können, der VC2005 sein eigen nennt.

    Servicepacks sollen im Sommer erscheinen. Und ja, du hast ein teures Produkt gekauft, das bei der selbstverständlichsten Sache der Welt geschlampt hat. Aber das ist nun mal MS. 😉

    Artchi

    PS: Ich würde mein englisch verbessern, da du ohne englisch in der Programmierung einfach aufgeschmissen bist. Man muß kein Dolmetscher sein, aber gutes Schhulenglisch sollte drin sein.



  • Als Hilfe fürs Englisch: dict.leo.org 👍



  • Jochen Kalmbach schrieb:

    Artchi schrieb:

    MS hat da leider einen Bug im VS8.0 drin, der bestimmt mit dem nächsten Servicepack für VS8 behoben wird. Zumindest ist das Problem MS bekannt und auf der msdn.com bekannt gegeben.

    Was für ein Bug soll denn dies sein? Mir ist keiner bekannt... das ganze ist so "by design"... oder was meinst Du genau?

    Ein Zitat aus dem Codeproject-Artikel:

    Microsoft forgot to include the required Windows Installer 3.1 in the redistributable.

    Wenn jemand etwas vergisst, damit etwas problemlos funktioniert, ist es ein Bug. Wie soll man sowas sonst nennen? 😕 Klar kann man sagen "Das ist so gewollt, halt by Design." Aber selbst dann frag ich mich, warum es einen Projekt-Wizard gibt, wenn er trotzdem vergisst default-mäßig die ganzen Manifests usw. anzulegen. Da hat MS meiner Meinung nach geschlammpt.

    Ist ja auch egal.. jedenfalls taucht dieses Problem in jedem Forum (auch MSDN-Foren) auf. Sind alle Programmierer zu doof? Glaub ich kaum...



  • Artchi schrieb:

    Microsoft forgot to include the required Windows Installer 3.1 in the redistributable.

    Wenn jemand etwas vergisst, damit etwas problemlos funktioniert, ist es ein Bug. Wie soll man sowas sonst nennen?

    Naja... das löst ja aber nicht das Problem... es hilft nur die DLLs zu installieren. Die Manifests benötigst Du trotzdem noch korrekt...
    Aber, MS hätte das gleich mitliefert können (wobei man es sich ja selber runterladen kann...).

    Artchi schrieb:

    Klar kann man sagen "Das ist so gewollt, halt by Design."

    Ich meinte eigentlich, dass mit dem Manifest. Das ist so gewollt.

    Artchi schrieb:

    Aber selbst dann frag ich mich, warum es einen Projekt-Wizard gibt, wenn er trotzdem vergisst default-mäßig die ganzen Manifests usw. anzulegen. Da hat MS meiner Meinung nach geschlammpt.

    Ich kenne kein Beispiel wo bei einem Projekt das Manifest vergessen wird... wenn jemand eines hat, bitte mir zukommen lassen!!! (ausser natürlich wenn man es naträglich deaktiviert hat...)

    Artchi schrieb:

    Ist ja auch egal.. jedenfalls taucht dieses Problem in jedem Forum (auch MSDN-Foren) auf. Sind alle Programmierer zu doof? Glaub ich kaum...

    Das Problem ist, dass dies neu ist und das SxS-zeugs IMHO nicht so ganz gelungen ist... aber es ist kein "Problem" sondern wirklich so gewollt...



  • Danke an alle! Das Problem ist gelöst.

    Genug Theorie (ich selber kapier auch nicht wieso und warum). Hier die Einstellungen, um das Problem zu behebn und Programme bei anderen Menschen zum Laufen zu bringen.

    Projekt --> <PROJEKTNAME>-Eigenschaften --> Konfigurationeigenschaften --> Allgemein --> Verwendung von MFC
    und hier bitte auf "MFC in einer statischen Bibliothek verwenden" auswählten. Erstellen--- fertig 🙂



  • Hi,
    ich habe die Express 2005, und habe das selbe Problem.

    Wenn ich jedoch statische Library verwenden gehe bekomme ich beim compilen diesen Error:

    Compiling...
    cl : Command line error D8016 : '/MT' and '/clr:pure' command-line options are incompatible

    Weiß jemand woran das liegt?



  • Du kannst kein Programm erstellen, welches das .NET-Framework verwendet und statisch gelinkt ist! Du musst gegen die DLL linken!
    http://www.codeproject.com/cpp/vcredists_x86.asp



  • Also Ok.
    Ich hab wirklich gestern grade erst angefangen mit VC++ rumzuspielen. (Grundkenntnisse in c++ hab ich)

    Leider verstehe ich von dem Text absolout nichts. (Inhaltlich)

    Könnte mir jemand vielleicht sagen was ich machen kann um mein "tolles" Programm auch auf nem anderen Pc zum laufen zu bringen?

    Ich war eigentlich absolut motiviert in vc++ einzusteigen aber wenns schon mit so nem scheiß los geht ... Vielleicht gibts ja ne Lösung die auch ich als Einsteieger verstehe... 😕 🙂



  • Achso und nochwas. Ich bin auf der Suche nach Tutorials für Express 2005. Bei Microsoft gibt leider nur ein Video, und in der MSDN blick ich im Moment gar nicht durch. Vielleicht hat jemand nen guten link für mich? 🙂



  • 1. Du musst Dich entscheiden was Du machen willst. Bei VC2005 gibt es zwei Möglichkeiten:
    * Native Win32 Programmierung (also C/C++)
    * Managed Programmierung (also C++/CLI; setzt dann auch das .NET-Framework vorraus)

    Du hast in Deinem Beispiel eine C++/CLI Anmwendung gemacht (was dann das .NET-Framework vorraussetzt). Wenn Du eine native Win32-Anwendung machen willst, dann musst Du das aktuelle Platform SDK installieren und in VC-Express einbinden:
    http://blog.kalmbachnet.de/?postid=58
    (irgendwo gibt es auch noch eine Beschreibung mit vielen bunten Bildern...)

    Mit der Express kannst Du aber wirklich native nur Win32-Programme machen, die relativ Aufwand bedeuten, wenn Du das mit GUI machen willst. Wenn Du eine GUI (Graphical User-Interface) machen willst, geht mit der Express nut C++/CLI und dann Windows-Forms (ich persönlich Rate Dir dann aber zu C#).
    Oder Du kaufst Dir zumindest die Standard-Version, da ist dann noch die MFC dabei, mit der man auch nativ "relativ" einfach GUI Anwendungen machen kann...



  • Jochen! Verheimliche doch bitte nicht immer, das es mehr Alternativen zur GUI-Programmierung als die WinForms gibt. Wir wissen hier alle, das du gerne .NET propagierst, aber man sollte fair sein und sagen, das es auch noch wxWidgets, GTKmm u.a. GUI-Toolkits gibt, wenn man (verständlicherweise) keine Win32-API benutzen will.

    @argh! Wie Jochen schon richtig gesagt hat, hast du anscheinend bei der Projekt-Erstellung explizit ein .NET-Projekt ausgewählt. Denn für .NET kann man auch in C++ programmieren. Verständlicherweise braucht dann auch der User .NET auf seinem PC. Wenn du das nicht willst, mußt du nur die richtige Projekt-Art auswählen. Es gibt da mind. Win32 als Konsolenanwendung, das wäre dann natives C++.

    Wenn du Fenster-Anwendungen programmieren willst, hast du mehrere Möglichkeiten. Entweder hardcore Win32-API, was aber heute keiner mehr macht da es eine C-basierte API ist. Oder du nimmst ein GUI-Toolkit wie die MFC (nur ab Standard-Edition) oder eines der kostenlosen OpenSource-Libraries, wie wxWidgets, GTKmm, Qt, usw. Die sind komfortabler, da es C++ basierte APIs sind. Wir haben hier auch noch ein passendes GUI-Unterforum.

    Dann gibts noch die WindowsForms-Anwendungen, wofür man aber das .NET-Framework benötigt. Das kannst du natürlich auch nehmen, wenn dir und deinen Anwendern .NET nichts ausmacht.



  • Hi, danke für deine Antwort.

    Was kannst du denn empfehlen? Ich bin jetzt gerade dabei die SDK Platform zu installieren wobei ich keinen Ahnung hab für was das gut ist..^^

    Wie baue ich denn am besten eine Windows Application - zB. einen Terminkalender?

    Ich möchte wenn dann gleich mit was richtigem anfangen anstatt 100€ oder wieviele Euros auszugeben und gleich was gscheits in der Hand zu haben. (bin schüler, und würde mir dann halt ne Schülerversion kaufen)

    Kann man mit der Express Edition überhaupt etwas anfangen?

    Wenn ich anwendungen mit MFC entwickle brauche ich immer das NET Framework?

    Vielen Dank schonmal!



  • Und nochwas... schön dass ich ich entscheiden kann... 😃 aber ich hab keine ahnung was was is und für was was gut ist und was für mich am besten geeignet is....

    Könnte mir jemand vielleicht schnell verraten was der Untershcied zwischen einer nativen win32 anwendung is und NET?



  • Aso und nochwas...^^

    Hab mich jetzt mal im GUI Berreich etwas umgeschaut... Mit welchem GUI Toolkit kirge ich denn auch einigermaßen ein Design hin? (oder ist das wurscht?)

    Was ist denn da am weitesten verbreitet?



  • Artchi schrieb:

    Jochen! Verheimliche doch bitte nicht immer, das es mehr Alternativen zur GUI-Programmierung als die WinForms gibt. Wir wissen hier alle, das du gerne .NET propagierst, aber man sollte fair sein und sagen, das es auch noch wxWidgets, GTKmm u.a. GUI-Toolkits gibt, wenn man (verständlicherweise) keine Win32-API benutzen will.

    Tschuldigung... ich dachte hier ginge es primär um MFC/MS... für die anderen gibt es ja sogar ein eigenes Forum, deswegen habe ich sie nicht explizit erwähnt
    http://www.c-plusplus.net/forum/viewforum-var-f-is-51.html

    Aber wenn man schon unter "Frameworks" postet, dann hätte dies einem auffallen sollen... deswegen sehe ich es nicht als notwendig an hier nochmals explizit darauf hinzuweisen...



  • Ultimate++ gefä##llt mir am besten.. hat das auch irgenwelche größeren nachteile?



  • Ich bin jetzt gerade dabei die SDK Platform zu installieren wobei ich keinen Ahnung hab für was das gut ist..^^

    Damit kannst du für die Windows-Platform Programme schreiben bzw. es stellt dir alle nötigen APIs zur Verfügung. Die Express Edition kann zwar C++ Code compilieren, aber du bekommst ja nur die Standard-C++-Lib dazu. Um z.B. DirectX programmieren zu können, müsstest du ja auch das DirectX-SDK downloaden (weiß jetzt nicht ob das schon im PlatformSDK dabei ist). Im Platform SDK sind halt alle wichtigen APIs für Windows-Technik bei.

    Wer die Standrd-Edition von VS kauft, hat da halt schon die PlatformSDK bei.

    Ich möchte wenn dann gleich mit was richtigem anfangen anstatt 100€ oder wieviele Euros auszugeben und gleich was gscheits in der Hand zu haben. (bin schüler, und würde mir dann halt ne Schülerversion kaufen)

    Versteh ich jetzt nicht. Willste 100 EUR ausgeben oder nicht? In der Standard oder Pro sind natürlich mehr Sachen bei, auch die IDE hat mehr Funktionen.

    Wie baue ich denn am besten eine Windows Application - zB. einen Terminkalender?

    Wie gesagt, geht mit jeder vernünftigen GUI-Lib. Welche, ist halt Geschmackssache, da alle ihre Vor- und Nachteile haben.

    Wenn ich anwendungen mit MFC entwickle brauche ich immer das NET Framework?

    Nein.

    Könnte mir jemand vielleicht schnell verraten was der Untershcied zwischen einer nativen win32 anwendung is und NET?

    Naja, ist ja jetzt wohl etwas viel verlangt. Da schreiben andere ganze Bücher drüber. Wir haben aber im Magazin-Unterforum einen Beitrag, was das .NET ist. Win32-Anwendungen sind halt Programme die unter Windows laufen und kein .NET brauchen. .NET ist halt eine neue Technologie und Framework von MS, die man halt benutzen kann, wenn man will.

    Hab mich jetzt mal im GUI Berreich etwas umgeschaut... Mit welchem GUI Toolkit kirge ich denn auch einigermaßen ein Design hin? (oder ist das wurscht?)

    Was meinst du mit Design? Ein GUI-Toolkit sollte ein Minimum erfüllen, und das können alle bekannten Toolkits leisten. Kommt darauf an, was dein Anspruch ist. Reicht es dir nur für Windows zu entwickeln? Oder willst du doch eher für Windows, Linux und Unix entwickeln? Willst du Geld ausgeben? Oder willst du alles kostenlos machen? Ist dir ein originales Windows-Look&Feel wichtig? Oder stört es dich nicht, wenn die GUI auch eigenwillig aussieht? (muß nicht schlechter sein, aber es gibt Leute, die wollen das Windows-Programm wie ein solches auch aussieht) Welche Lizenz bevorzugst du? (OpenSource oder Closed Source?)

    Was ist denn da am weitesten verbreitet?

    Unter Windows ist es die MFC, ist auch offiziell von MS so bestätigt. Kein Wunder, es ist bei jeder VC++ Version dabei und wird somit von den meisten VC++-Usern genutzt. Mit VC++ 2005 Express ist es zum ersten mal nicht dabei, da es eine Express vorher nie gab. Aber ab der 2005 Standard wieder drin.

    wxWidgets ist auch recht verbreitet, z.B. ist der AOL Messanger und Xara damit programmiert.

    Unter Linux sind dann Qt (KDE) und GTK bzw. GTKmm (Gnome) praktisch Standard. GIMP ist z.B. mit GTK programmiert. Opera mit Qt.

    Alles eine Frage des Geschmacks und der Anforderungen.



  • Hallo,

    ich habe eine Frage, die sich irgendwie in diesen Thread ganz gut eingliedert, deshalb wollte ich keinen neuen eröffnen.

    Ich frage mich gerade, wie es möglich ist, im Rahmen von C++ die Windows Forms aus .NET zu benutzen.

    Wenn ich ein neues Projekt erstelle, habe ich unter C++ -> Intelligente Geräte ja nur die Auswahl zwischen z.B. ATL, MFC, Win32 und weiteren. Aber eben nicht .NET.

    Unter C# kann man dann ja ganz gezielt eine Windows Forms Anwendung für Intelligente Geräte erstellen und hat dann auch die entsprechende grafische Oberfläche, wo man von Hand die Buttons beschriften kann usw.

    Wie kann ich das in ein C++ Projekt bekommen? Oder kann ich einfach eine Win32 Vorlage benutzen und dann dort drin das .NET Framework verwenden?

    Sind solche Geschichten wie die ganzen GPS-Funktionen aus dem Windows Mobile SDK sprachenunabhängig, also funktionieren die mit C++ genau so wie mit C#?

    Lieben Dank.

    Jean



  • Ich vermute das bedeutet, keiner weiß die Antworten. Oder habe ich einen Fehler beim Posting gemacht? Kann mir vielleicht jemand einen Tipp geben, wo jemand die Fragen beantworten könnte?

    Danke. Jean



  • Was sind denn intelligente Geräte?

    Was willst du denn machen? Du mußt wissen was dein Ziel ist. Deshalb wirst du hier keine Antwort bekommen, wenn du kein konkretes Ziel angibst.

    Du kannst jedenfalls in einem Projekt sowohl C++ als auch C++/CLI benutzen. Und somit sind eigentlich alle Möglichkeiten vorhanden.


Anmelden zum Antworten