Wie kann ich reines C++, also ohne .NET Framework, in Visual Studio 2019 programmieren?

2 Antworten

Lege ein C++-Projekt an und wirf in dessen Konfiguration alle Bibliotheken außer der MSVCRTxx.dll raus. Lösche auch alle #includes, die der Editor automatisch in deinen Sourcecode einfügt.

Untersuche die erstellte .exe auf Abhängigkeiten (z.B. hiermit). Da siehst du, welche anderen DLLs benötigt werden.

Beim "Ausliefern" deiner .exe musst Du mindestens die passende MSVCRTxx.dll dazulegen. Die findest du (zusammen mit anderen DLLs, die du vielleicht benutzt) irgendwo im Installationsverzeichnis von Visual Studio (in einem Unterordner namens redistrib oder so).


verreisterNutzer  04.05.2020, 18:35

Ok ich brauche ucrtbased.dll und VCRUNTIME140D.dll für meine .exe kompilierte visual c++ Datei.

Aber trotzdem DANKE!

Viel besser, als alle anderen hier!

0
ralphdieter  04.05.2020, 19:23
@verreisterNutzer

Klingt plausibel. Das -crt- steht wohl für C-Runtime. Das -d am Ende steht für Debug. Wenn Du im Release-Modus compilierst, wird deine .exe viel kleiner und etwas schneller. Dann brauchst du vermutlich die ucrtbase.dll und VCRUNTIME140.dll.

0
mnlwrnr  01.06.2020, 00:06

Hier ein Tip von mir: Ich empfehle dazu das WiX Toolset. Damit kann man sein fertig kompiliertes Programm mit allen benötigten DLLs in ein MSI Installationspaket verpacken.

Hier die benötigten Downloads: https://wixtoolset.org/releases/ Sie benötigen einmal die WiX Toolset build tools und die WiX Toolset Visual Studio Extension.

Damit wird das ganze automatisiert und man braucht nicht nach den DLLs selbst zu suchen.

Das ganze ist Freeware.

0

ganz einfach ,

halt ein C++ Projekt erzeugen .


verreisterNutzer  03.05.2020, 17:56

und dann?

0
RakonDark  03.05.2020, 18:04
@verreisterNutzer

dein ernst ?

dann programmiert man C++ code .

so mach ich das , kann ja sein das du ein ganz anderes VisualStudio hast , glaub ich aber kaum .

0
verreisterNutzer  03.05.2020, 18:15
@RakonDark

Ja aber wenn ich mein Programm compiliere und an einem anderen PC ausführe, das weder Visual Studio noch .NET Framework hat, geht es nicht. Meine Frage war wie ich ein C++ Programm in Visual Studio 2019 schreiben kann, das auch auf anderen PCs ohne Visual Studio 2019 und .NET Framework und .NET Core SDK laufen kann...

Wie geht das?

0
RakonDark  03.05.2020, 18:59
@verreisterNutzer

wenn brauchst du maximal noch die VC++ Runtime , wenn du das mit NET compilierst , wird das auch NET brauchen . Wie gesagt, ich hab keine Ahnung was du wie benutzt , aber reine C++ Programme laufen auch ohne alles . Aber wenn Du natürlich die sachen brauchst weil du halt eigentlich Windows Fenster etc nutzt , dann machst du ja auch nicht reines C++ sondern bedienst dich fertiger bibliotheken . Und die brauch es dann auch .

0
verreisterNutzer  03.05.2020, 19:17
@RakonDark

Ok aber wie kann ich jetzt auch ohne VC++ Runtime ein C++ Programm z.b. mit #include <Windows.h> compilieren und an einem anderen PC ohne VC++ Runtime ausführen lassen?

0
grtgrt  03.05.2020, 19:57
@verreisterNutzer

Programme mit #include <Windows.h> sind natürlich an MS Windows gebunden (aber nicht an .NET).

0
verreisterNutzer  03.05.2020, 20:05
@grtgrt

OK, aber wie kann ich jetzt meinen C++ Code mit Visual Studio 2019 compilieren, dass eine anderer PC OHNE .NET Core SDK oder ohne .NET Framework oder ohne VC++ Runtime oder ohne Visual Studio die Datei ausführen kann...

Wie geht das?

0
grtgrt  03.05.2020, 20:08
@verreisterNutzer

Du kannst deinen Code auch in MS Visual Studio ganz normal kompilieren. Darfst halt nur keine Windows-spezifischen Includes nutzen.

0
verreisterNutzer  03.05.2020, 20:10
@grtgrt

Wie kompiliere ich das dann jetzt genau?

Was heißt ganz normal kompilieren?

Was ist mit Windows-spezifischen Includes gemeint?

0
grtgrt  03.05.2020, 20:12
@verreisterNutzer

Meine Aussage muss genauer lauten:

Du kannst deinen Code in MS Visual Studio ganz normal kompilieren. Was resultiert, wird immer an MS Windows gebundener Code sein (aber nicht an .NET gebundener, solange du keine .NET-spezifischen Includes in deinem Programm hast).

0
grtgrt  03.05.2020, 20:33
@verreisterNutzer

Solche, die Funktionalität von .NET beschreiben.

C++ hat existiert lange bevor es .NET gab. Windows kommt auch ohne .NET aus (denn .NET ist ja schließlich nur EINE der vielen möglichen Anwendungen, die auf Windows arbeiten und in C++ implementiert sein können). Insofern unterscheidet .NET sich nicht von Anwendungen, die du selbst für Windows in C++ implementieren möchtest.

0
grtgrt  03.05.2020, 20:39
@grtgrt

Selbst wenn Teile von MS Visual Studio Anwendung von .NET sein sollten (was ich nicht weiß), bedeutet das nicht, dass man mit Visual Studio nicht auch Anwendungen implementieren kann, die .NET nicht benötigen.

0
verreisterNutzer  03.05.2020, 20:42
@grtgrt

Ok aber warum kann ich dann trotzdem die .exe Datei (also die c++ kompilierte Datei)auf meinem anderen PC öffnen?

0
grtgrt  03.05.2020, 20:45
@verreisterNutzer

Wenn deine für MS Windows auf einem PC gebaute EXE auch auf dem anderen PC arbeitet, dann halt deswegen, weil der auch unter MS Windows läuft.

0
grtgrt  03.05.2020, 20:48
@grtgrt

Es wäre doch schlimm, wenn jede EXE immer nur auf dem PC arbeiten könnte, auf dem sie erzeugt wurde. Jede EXE benötigt einen Interpreter, aber der ist tatsächlich in JEDER Windows-Installation vorhanden.

Mit .NET hat das gar nichts zu tun.

0
grtgrt  03.05.2020, 21:17
@verreisterNutzer

In Klartext: Wenn das Programm, das du schreiben möchtest, .NET nicht aufrufen will, dann benötigen weder du noch Visual Studio entsprechende Includes. Du kannst dann so tun, als gäbe es .NET gar nicht.

0
grtgrt  03.05.2020, 21:28
@grtgrt

Nebenbei: Wer .NET verwenden möchte, muss C# (statt C++) nutzen.

Das Laufzeitsystem von C# arbeitet ganz anders als das zu C/C++.

0
verreisterNutzer  03.05.2020, 23:01
@grtgrt

Nein was soll ich machen, dass mein Programm auch auf meinem anderen PC läuft?

0
grtgrt  03.05.2020, 23:08
@verreisterNutzer

Du brauchst gar nichts zu machen. Wenns auf einem PC funktioniert, wird es (unterm selben Betriebssystem) auch auf allen anderen funktionieren - auch wenn Visual Studio dort gar nicht installiert ist. Studio ist ja nur zum Bau der EXE notwendig, aber nicht zu ihrem Ablauf.

0
RakonDark  03.05.2020, 23:09
@verreisterNutzer

Vielleicht mal Grundlagen lernen und vor allem nicht erwarten das Copy und Paste und Compile drücken das einzige ist was du kannst . isher sehe ich jedenfalls nicht das Du irgendwie Programmieren kannst .Ergo können wir Dir auch nicht helfen .
Warum das auf deinem Rechner läuft, weil du beim installieren von Visual Studio auch einen ganzen haufen adneren Kram installiert hast .

maxminal wäre das Problem das es eine andere VC++ Version gibt .

Sorry aber etwas zu erklären was Du dir beibringen musst , z.b. was ein Include ist , ist dein Problem . Wir sehen heir ja nicht mal den Code . Und hättest Du dich auch nur 10 minuten mit Programmieren und Compilieren beschäftigt dann wüsstest Du das .

0
RakonDark  03.05.2020, 23:12
@grtgrt

das stimmt so überhaupt nicht, wennich was mit VC 19 compiliere oder mit älteren wie VC 15 dann muss man die "meist nach installieren" ist auch so bei vielen alten spielen .
Er kann sogar nur das debug compiliert haben , dannbräuchte er auf dem anderen auch das debug (weil er nicht wusste das es auch ein release compile gibt) .
Ergo , du hast auch keine Ahnung vom Programmiern und Compilieren .
Hättest Du sie , würdest Du das wissen . Aber erstmal (un)schlaue antworten raushauen . tztztz .

0
RakonDark  03.05.2020, 23:19
@verreisterNutzer

naja , scheint nicht so zu sein , ich seit 20 jahren , und alles was du sagst , sagen leute die gerade das buch aufgeklappt haben aber nicht lesen wollen .
und schreihen hilft gar nicht, ich binnicht deine mudda. mein tip ,mach ein setup und liefere die redistributables dafür .

0
RakonDark  03.05.2020, 23:24
@verreisterNutzer

lol , du verwechelst hier ein how to do und hilfe plattform und ein service wo du geld bezahlen würdest.
Wir haben dir alle geholfen , aber du willst eine anleitung die dir keiner geben kann .
Denkste auch wir arbeiten für dich oder was willste hier .

du hast mal gar keine rechte . und so helfen dir die meisten sowieso nicht. hier fragt auch keiner wie baue ich ein auto . denn dazu muss man schon grundlagen haben . du willst also gar keine hilfe , du willst nur rumschreien etc .. mach das zu hause aber hier kommste damit kein mm weit.

ganz neues gefühl für dich .

motzen, schreien , ansprüche stellen ... ja ja . mehr kannste nicht .
'

1
verreisterNutzer  03.05.2020, 23:30
@RakonDark

Hä was laberst du ich kann viele Sachen....und übrigens ich motze nicht ich Frage nur euch "Experten" etwas und ich bekomme keine Antwort, die ich verwerten kann...

0
grtgrt  04.05.2020, 09:43
@verreisterNutzer

Denk doch mal nach: Ein Programm, das nur auf dem Rechner arbeitet, auf dem es entstand, macht doch gar keinen Sinn. Man könnte es ja selbst dem eigenen Kunden nicht geben. Du hast halt einfach nur einige Videos angesehen und denkst jetzt programmieren zu können. Das ist halt ein großer Irrtum - aber deinerseits.

0
grtgrt  04.05.2020, 09:47
@grtgrt

Ohne ein gutes Buch über C++ für Anfänger, wirst du NIE lernen ein C++ Programm zu erstellen.

0
grtgrt  04.05.2020, 11:19
@verreisterNutzer

Gib halt mal ne grobe Schätzung (wieviel Seiten Code etwa, rechne mit 50 Zeilen pro Seite).

0
grtgrt  04.05.2020, 12:15
@verreisterNutzer

Naja: Dann kannst du ja auch in Java noch nicht wirklich programmieren, sondern erst mal nur Code schreiben, der compilierbar ist.

Bevor man nicht ein erstes Programm mit nicht ganz trivialer Funktionalität (so ab 50 000 Zeilen Code und verteilt über mehrere Dateien) nicht nur geschrieben, sondern auch ausführlich getestet hat, sollte man nicht behaupten, "gut programmieren" zu können.

0