Warum funktioniert mein Installer nicht?

Ich bin mit meinen Programm in Visual Studio fertig geworden und wollte, dass man dieses Programm mit einen Installer wie jedes andere Programm welches man im Internet herunterlädt auf dem Computer installieren kann. Dafür habe ich mir die Visual Studio Erweiterung "Microsoft Visual Studio Installer Projects" (https://marketplace.visualstudio.com/items?itemName=VisualStudioClient.MicrosoftVisualStudio2017InstallerProjects) heruntergeladen.

Nachdem ich die Erweiterung heeuntergeladen hatte, habe ich in der Projektmappe meines Programms ein neues Projekt(siehe Bild 1) hinzugefügt.

Danach habe ich im "Application Folder" (siehe Bild 2) eine Projektausgabegruppe mit der "Primären Ausgabe" und der Kofiguration "(aktiv)", den Ordner wo ich alle Bild- und Sounddateien gespeichert habe (im Projektordner ist er unter "...\bin\Debug" gespeichert) und das Icon der Exe-Datei hinzugefügt. In den Ordnern "User's Desktop" und "User's Programs Menu" habe ich jeweils eine Verknüpfung zur Primär Ausgabe hinzugefügt.

Als ich damit fertig war habe ich die Batch dazu ertellt (siehe Bild 3) und im Debug Ordner von Setup1 erschienen eine Exe und eine MSI Datei.

Als ich die besagte Exe Datei ausführte, hat sich der Installer ganz normal geöffnet und mein Programm installiert. Jedoch wenn ich versuche das Programm zu starten - egal ob über der Verknüpfung am Desktop oder PrograM Menü der die Exe Datei selber im Programm Ordner - passiert gar nichts. Laut dem Task-Manager öffnet sich zwar kurz ein Prozess, schließt sich aber Direkt wieder. Wenn ich das Programm über den Projektordner von Visual Studio öffne, öffnet sich das Programm ganz normal, also warum funktioniert das nicht über die installierte Version des Programmes?

Bild zu Frage
PC, Computer, Videospiele, Windows, Windows 7, Technik, Programm, Installation, programmieren, installieren, C Sharp, Technologie, Visual Studio, Visual Studio 2017
"<objekt>": Unbekannter Überschreibungsspezifierer [C++ | Visual Studio Community]?

Hallo, lieber Leser,

leider gelingt es mir partout nicht, Objektinstanzen innerhalb von Klassen weiter zu verwenden und ich befürchte, dass ich etwas Grundlegendes im Konzept der OOP übersehe bzw. nicht kenne.

In einem kleinen Freizeitprojekt von mir werden, was Beweggrund für diesen Post hier war, leider eine Reihe von Fehlern ausgespuckt, für die zu lösen zu versuchen ich schon eine Menge Zeit aufgewandt habe und welche ich alle auf eine Unkenntnis eines wichtigen Konzeptes, wie oben schon beschrieben, zurückführe.

Ich würde mich über konkrete Lösungsvorschläge genauso freuen, wie auf Hinweise, was ich wohl konzeptuell nicht so recht verstanden habe. Vielen Dank.

main.cpp: https://pastebin.com/PKCF75FR

Fehler: Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand

Fehler C3646 "difficulty": Unbekannter Überschreibungsspezifizierer C:\Users*\source\repos*\main.cpp 9

Fehler C3646 "getDifficulty": Unbekannter Überschreibungsspezifizierer C:\Users*\source\repos*\main.cpp 20

Fehler C2065 "Item": nichtdeklarierter Bezeichner C:\Users*\source\repos*\main.cpp 76

Fehler C3646 "playerClass": Unbekannter Überschreibungsspezifizierer C:\Users*\source\repos*\main.cpp 73

Fehler C2923 "std::vector": "Item" ist kein gültiges Vorlage-Typargument für den _Ty-Parameter. C:\Users*\source\repos*\main.cpp 76

Fehler C4430 Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. * C:\Users*\source\repos*\main.cpp 73

Fehler C2059 Syntaxfehler: "(" C:\Users*\source\repos*\main.cpp 20

Fehler C2059 Syntaxfehler: "=" C:\Users*\source\repos*\main.cpp 9

Fehler C2238 Unerwartete(s) Token vor ";" C:\Users*\source\repos*\main.cpp 9

Fehler C2334 Unerwartete(s) Token vor "{"; sichtbarer Funktionstext wird übersprungen C:\Users*\source\repos*\main.cpp 20

Fehler C1903 Weiterverarbeitung nach vorherigem Fehler nicht möglich; Kompilierung wird abgebrochen. C:\Users*\source\repos*\main.cpp 76

Grundlegende Fehler, also noch grundlegender, als die oben beschriebenen, dürfen ignoriert werden.

Computer, programmieren, CPP, Informatik, Visual Studio, Objektorientierung, Objektorientierte Programmierung
C++: Sonderzeichen lösen Problem aus?

Hallo Leute,

ich habe ein Problem mit Sonderzeichen.

Sonderzeichen wären:

und Zeichen mit Akzent, z.B. ê.

Hier mein Code:

for (auto & p : fs::directory_iterator(VARIABLE)) {
  fs::path pn = p.path();

  if (is_regular_file(pn)) {
    std::string ps = pn.string();
    do_something(ps)
  }
  else {
    give_me_some_error();
  }

Führe ich den Code eingebaut und mit entsprechenden Parametern aus, funktioniert dieser sehr gut und gibt mir auch die richtigen Ergebnisse zurück.

Problem ist, wenn ein oder mehrere (auch andere) Sonderzeichen, wie oben genannt, kommen. Dann wirft er mir bei

std::string ps = pn.string();

einen Fehler (siehe Bild) aus.

Unter Details anzeigen kommt dann:

Unbehandelte Ausnahme bei 0x755135D2 in Test1.exe: Microsoft C++-Ausnahme: std::system_error bei Speicherort 0x0090EF3C.

-

und wenn ich auf Ausnahmeeinstellungen gehe, kommt, dass er von Kernelbase.dll ausgelöst wurde.

Nach langem Suchen via Google habe ich zum einen herausgefunden, ich solle doch statt path() die u8path() nehmen. Das wirft mir jedoch einen Fehler aus (außer ich habe es falsch gemacht, ich bin neu in C++).

Und ich soll in den Einstellungen das Charset auf Unicode umstellen.

Das hat aber alles nichts gebracht.

Infos:

  • Ich nutze die neueste Version von Visual Studio 2019 (heute; 16.12 aktualisiert).
  • Ich habe schon gegoogelt, das hat jedoch nichts gebracht.
  • Die oben gezeigte for-Schleife ist in einer Funktion drinnen, wo die benötigten Parameter übergeben werden.
  • Das Programm funktioniert, solange kein Sonderzeichen kommt.

Ich hoffe, jemand von euch kann mir helfen. Ich bin echt am Verzweifeln.

Weitere Anmerkungen:

Ich habe gerade gesehen, dass mir, wenn ich über den String gehe, zusätzlich noch ausgegeben wird: "Fehler beim Lesen der Zeichenfolge". Ich weiß nicht ob das weiterhilft.

Bild zu Frage
Computer, Fehler, programmieren, Sonderzeichen, CPP, Visual Studio, UTF-8
Projekt in Visual Studio C# wie mache ich z.b. 100*5 hoch 2? Fragen zur Zinsrechnung in C#?

In der Schule haben wir das Thema Zinsen in Mathe, ich möchte nun eine Anwendung erstellen, welche mir z.b. bei der Suche der Zinsen nur durch das eingeben von dem Kapital, Zinssatz und der Laufzeit in Jahren das Ergebnis + Rechenweg gibt.

  1. Frage

Ich habe es schon geschafft, dass mir bei einer Laufzeit von einem Jahr das Richtige angezeigt wird, aber bei z.b. 2 Jahren wird der Wert einfach verdoppelt. Das ist natürlich nicht falsch, da ich * diesen Wert (Wert3) geschrieben habe. Aber es soll so sein, dass die Zinsen nach dem ersten Jahr auch mitgerechnet werden. So wie beim Taschenrechner bei der Hochrechentaste: ("X" und oben rechts ein "y").

Wie mache ich es, dass das mitgerechnet wird?

zweite Frage:

Wenn die Jahre/Laufzeit nur 1 ist, soll automatisch "1" bei Wert3 stehen, ohne es bei der TextBox einzugeben (Wert3 ist der Wert für die Jahre/Laufzeit). Wie mache ich das?

dritte Frage:

Ist es möglich Rechenwege mit Klammern zu schreiben? (Z.B. (Wert1 * Wert2 / 100) * Wert3. Ja bei dieser Rechnung wären Klammern unnötig, aber ihr wisst was ich meine.)^^

Vierte Frage:

Kann ich irgendwie z.b. der Variable "wert1" zu der Variable "Kapital" zuweisen bei einer if-Abfrage? Also dass ich beim If-Teil "Wert1 = Kapital" und bei der Rechnung "Kapital * …." eingeben kann? Wenn ich das so mache, kommt immer 0 raus, egal was ich in die TextBox eingebe.

Und letzte Frage:

Kann man irgendwie in die TextBoxen mit Kommata (,) schreiben? (Z.B. das Kapital ist 100,75€ groß), bei der Eingabe eines Kommas kommt immer der Fehler, dass die Zeicheneingabefolge falsch sei (oder so ähnlich).

Ich hoffe ihr könnt mir helfen. Ich mache dies hier: 1. um C# weiterzulernen und 2. Falls ich den Rechenweg mal vergesse, ich trotzdem diese Anwendung hier habe.^^

So sieht der Code aus (bin C# Anfänger):

Bild zu Frage
PC, Computer, Microsoft, Schule, Mathematik, programmieren, C Sharp, Visual Studio
Wieso bekommt die Variabel einen anderen Wert?

Wenn ich den C# Code ausführe wird der Wert der Variabel tief auf eingabe+48 gesetzt.

Wie kann ich das verhindern?

private static void tri()
        {
            Console.Write("Bitte geben sie die breite an: ");
            int tief = Console.Read();
            Console.WriteLine(tief);
            int tiefe = tief + 2;
            Console.WriteLine(tiefe +" "+ tief);
            StringBuilder dreieck = new StringBuilder(string.Empty);
            char[] form = new char[tiefe];
            for (int i = 0; i < tiefe; i++)
            {
                form[i] = ' ';
            }
            for (int it = 0; it <= tiefe/2-1; it++)
            {
                    try
                    {
                        form[(tiefe / 2 + 1) - it] = '#';
                        form[(tiefe / 2 + 1) + it] = '#';
                    }
                    catch
                    {
                        //abbrechen
                    }
                  dreieck.AppendFormat(new String(form)+ "\n");
              }
              Console.WriteLine(dreieck);
        }
Bild zu Frage
Programm, programmieren, C Sharp, Informatik, Visual Studio

Meistgelesene Fragen zum Thema Visual Studio