Hallo, ich möchte ein Windows Programm für Abgleichzwecke schreiben. Ich habe mir Visual Studio Community 2017 installiert und mit eine C++ Projekt bekonnen. Leider finde ich hier keine Vorlagen um ein Windows Form für ein GUI hinzuzufügen. Diese Möglichkeit scheint mir nur C# zu bieten, dann habe ich allerdings Probleme meine DLL einzubinden. Ist es richtig, dass ich mit C++ nur Konsolenanwendungen schreiben kann? Vielen Dank und noch einen schönen Tag Bernd
Nein. Du kannst auch in C++ eine GUI direkt programmieren. Leider geht der visuelle Designer nur mit c#.
Wenn es so ist, das du mit Visual C++ nur Consolenanwendungen schreiben, und mit C# keine DLLs einbinden kannst, dann ist das halt so. https://docs.microsoft.com/de-de/cpp/windows/desktop-applications-visual-cpp https://developercommunity.visualstudio.com/content/problem/10857/cant-find-the-template-for-mfc-programming-in-file.html Oliver
:
Bearbeitet durch User
Was du suchst ist wahrscheinlich C++/CLI. Damit kannst du wahlweise reine .NET oder Mixed-Mode (.NET und nativer code) Assemblies erstellen.
Was immer noch gut funktioniert: "C++ WindowsFormsAnwendung" in VisualStudio2008 erstellen. Dann in VisualStudio2013(?2017)importieren. Dann funktioniert auch der AnwendungsDesigner für C++ Projekte in neueren Versionen vom VisualStudio.
nimm VisualStudio2013, ich hab in VisualStudio2017 es ebenfalls nicht geschafft den Button für WindowsForms zu finden. Ich glaube C# ist C++ bei Microsoft, und die meinten Beispiele die man findet sind C#. Ich würde C# nehmen. Und ich wette ein Wochengehalt daß man C libraries auch in C# einbinden kann.
Frank F. schrieb: > Ich würde C# nehmen. Und ich wette ein Wochengehalt daß man > C libraries auch in C# einbinden kann. klar kann man das, aber es gibt sehr wenig Gründe warum man das machen sollte. Unter C# kann man die GUI auch mit WPF machen. Ein GUI lastige Anwendung würde ich auch nicht mehr mit c(++) machen.
Frank F. schrieb: > Ich glaube C# ist C++ bei Microsoft Nein. C# ist C#, und C++ ist entweder richtiges C++ (dann gibt es keine .Net-Unterstützung) oder eine MS-Perversion namens "Managed C++" bzw. "C++/CLI", die so ähnlich aussieht wie C++, aber um Spezialitäten verschlimmbessert wurde, um mit dem .Net-Geraffel zu koopierieren. Windows Forms sind eine .Net-Technik, lassen sich also nur mit einer .Net-Sprache nutzen.
Frank F. schrieb: > Und ich wette ein Wochengehalt daß man C libraries auch in C# > einbinden kann. Diese Wette ... wird aufwendig. Nativen C-Code kannst Du in C# nur über den umständlichen Umweg einer DLL nutzen, und dann hast Du noch den ganzen "Marshaling"-Kram an der Backe. Aber hier geht es gar nicht um C-Libraries, denn "Windows Forms" hat nichts mit nativem Code zu tun, sondern ist .Net-Geraffel.
Rufus Τ. F. schrieb: > .Net-Unterstützung) oder eine MS-Perversion namens "Managed C++" bzw. > "C++/CLI", die so ähnlich aussieht wie C++, aber um Spezialitäten Nun ja, eigentlich war das mehr eine Handreichung um vorhandem C++ Code zu WinForms zu verhelfen. Microsoft selber hat immer gesagt, dass es nicht dafür gedacht ist, neue Projekte damit aufzuziehen. Egal, wie auch immer seit VS2012 gibts keine Unterstützung mehr für C++/CLI. Zum Thema. Wer C++ kann wird sich auch recht schnell in C# reinfinden. Die Unterschiede sind zwar für einen Kenner beider Welten riesig, aber im Grunde ist die Kluft nicht so tief.
@Op schau dir doch mal Qt an, dann isses auch gleich Platformunabhängig. Wenn der Gui-Anteil nicht so groß ist, reicht vielleicht aber auch ein weniger mächtiges Framework.
Vlad T. schrieb: > schau dir doch mal Qt an, dann isses auch gleich Platformunabhängig. genau wie .net
nicht"Gast" schrieb: > Egal, wie auch immer seit VS2012 gibts keine Unterstützung mehr für > C++/CLI. Natürlich wird C++/CLI auch in der neuesten Version von VS unterstützt ("Templates unter Visual C++ - CLR"). Wäre ja sonst auch ziemlich blöd für Leute, die damit Wrapper für nativen Code schreiben wollen. Genau dafür ist es nämlich gut geeignet und bei etwas umfangreicheren Bibliotheken deutlich einfacher und "weniger komisch" als P/Invoke, da man einerseits richtiges C++ (und damit z.B. C++-Bibliotheken), andererseits in der Schnittstelle zu .NET die entsprechenden Erweiterungen verwenden kann.
Hier ist ein leeres VisualStudio2013 C++ WindowsForms Projekt. VisualStudio unterstützt immer noch C++. Es lassen sich nur keine neuen Projekte erzeugen. Bei existierenden Projekten funktioniert alles wie gehabt. Ob das Projekt hier unter VS2017 geht, müsste mal jemand probieren, der VS2017 in Verwendung hat.
Holger74 schrieb: > Hier ist ein leeres VisualStudio2013 C++ WindowsForms Projekt. > Ob das Projekt hier unter VS2017 geht, müsste mal jemand probieren, > der VS2017 in Verwendung hat. Funktioniert, aber mit Warnungen: Command line warning D9035: option 'clr:pure' has been deprecated and will be removed in a future release 'System::Security::Permissions::SecurityAction::RequestMinimum': marked as obsolete > Es lassen sich nur keine neuen Projekte erzeugen. Richtig, keine WinForms-Projekte für C++/CLI, aber davon rät MS ohnehin schon seit vielen Jahren ab. Ich würde von C++/CLI - außer für Wrapper und evtl. spezielle Konsolen-Tools, die sowohl mit .NET als auch mit nativem Code klarkommen müssen - die Finger lassen ... Und genau für diese beiden Einsatzzwecke gibt es ja auch in VS 2017 noch Projektvorlagen. @Bernd Da hast also folgende Möglichkeiten (VB sowie App-Zeugs ignoriere ich mal): 1. C# und WinForms oder WPF verwenden und P/Invoke für deine DLL benutzen. http://openbook.rheinwerk-verlag.de/visual_csharp/visual_csharp_20_002.htm#mj391e583525457812f4c9b85ab37a758e 2. C# und WinForms oder WPF verwenden und einen C++/CLI-Wrapper für deine DLL schreiben. https://code.msdn.microsoft.com/windowsdesktop/CppCLINativeDllWrapper-29c32acd 3. C++ verwenden und die Windows-C-API (Ressourceneditor als Hilsmittel). http://zetcode.com/gui/winapi/ 4. C++ verwenden und eine GUI-Bibliothek deiner Wahl (Qt, MFC, WTL, wxWidgets, Win32++ oder was auch immer). 5. C++/CLI und WinForms.
Flip schrieb: > 3. C++ verwenden und die Windows-C-API (Ressourceneditor als > Hilsmittel). Für Masochisten gibt es dann auch noch: C verwenden zusammen mit der Windows-API. Als Buch empfiehlt sich da der Petzold*. Klingt bizarr, hilft einem aber zu verstehen, wie das ganze Windows-System mit Fenstern, Nachrichten etc. tatsächlich funktioniert. Die diversen GUI-Libraries verbergen diesen Unterbau mehr oder weniger gründlich. *) Charles Petzold, "Programming Windows" Antiquarisch. Die ersten drei Ausgaben davon beschäftigten sich mit der 16-Bit-API von Windows 3.x, die will man sich dann doch vielleicht nicht mehr antun, man will die vierte (1996) oder fünfte (1998) haben. Auch wenn das Buch zwei Jahrzehnte auf dem Buckel hat, die Grundkonzepte haben sich nicht verändert. Borland hat die dritte Ausgabe mal mit einem ihrer Compiler zusammen ausgeliefert, das war Borland C++ 3.0, wenn ich mich recht erinnere.
Mal kurz zurück zu der eingentliche Frage:
> ich möchte ein Windows Programm für Abgleichzwecke schreiben.
Was willst du da Abgleichen? Wenn z.B. 2 Dateien oder Verzeichnisse
inhaltlich verglichen werden sollen, brauchst du nix selbst schreiben:
kdiff3, Beyond Compare, usw tun genau das.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.