HelloWorld.cpp nu poate compila (Programare, C++, Studio Vizual)

2012ssohn a intrebat.

Încerc să învăț să programez în C++, deoarece momentan abia cunosc limbajul. Am descărcat Visual Studio Express 2017 și am făcut un program foarte simplu. HelloWorld.cpp fișier, dar primesc eroarea prezentată mai jos.

Am verificat sintaxa de mai multe ori, dar nu văd o eroare în codul în sine, ceea ce mă face să cred că ar fi putut fi o problemă la instalarea în sine. Cu toate acestea, deoarece sunt foarte nou în VSE, nici măcar nu știu de unde să încep să remediez această problemă. Dacă ați putea să-mi dați o mână de ajutor, ar fi minunat.

Mesajul de eroare:

[3/24/2018 6:49:30 PM Error] System.ArgumentNullException: Value cannot be null.
Parameter name: solutionDirectory
   at Microsoft.VisualStudio.TestPlatform.ObjectModel.ValidateArg.NotNull[T](T arg, String parameterName)
   at Microsoft.VisualStudio.TestWindow.Controller.TestRunConfiguration..ctor(TestContainerConfigurationQuery testRunQuery, String resultsDirectory, String solutionDirectory, Boolean ignoreDiscovery, ILogger logger, Boolean keepAlive)
   at Microsoft.VisualStudio.TestWindow.Controller.RequestConfigurationFactory.CreateTestRunConfigurationBase(TestContainerConfigurationQuery query, Boolean ignoreDiscovery)
   at Microsoft.VisualStudio.TestWindow.Controller.RunAllOperation.CreateRunConfiguration()
   at Microsoft.VisualStudio.TestWindow.Controller.RunOperation.get_RunConfiguration()
   at Microsoft.VisualStudio.TestWindow.Controller.RunOperation.<RunTestsAsync>d__12.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.TestWindow.Controller.RunOperation.<ExecuteInternal>d__13.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.TestWindow.Controller.Operation.<ExecuteWithEvents>d__40.MoveNext()

Codul în sine, dacă doriți să confirmați că nu este nimic în neregulă cu el:

// HelloWorld.cpp

#include <iostream>

int main()
{
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

Comentarii

  • Pot să vă dau un sfat? Dacă încă învățați sintaxa, folosiți ceva de genul Codeblocks (descărcați versiunea cu compilator). După aceea, puteți trece la ceva precum Visual Studio sau Eclipse CPP. Aceasta este experiența mea personală. Uneori primești unele erori din cauza IDE-ului sau ceva de genul ăsta. Se întâmplă foarte des cu VS -.  > Por WillEnsaba.
  • Cum ți-ai configurat proiectul? –  > Por BobMorane.
  • Îți lipsește un proiect. Butonul Run (Execută) din captura de ecran arată Attach to process. Ar trebui să se citească run/start sau debug –  > Por rollstuhlfahrer.
  • În fila Output ar trebui să se citească „Show Output from Build”, nu Tests. Presupun că fie nu ați creat un proiect, fie ați ales un tip greșit de proiect. –  > Por drescherjm.
  • Asigurați-vă că reporniți MSVS și din Meniu: file->new->project->visual c++->win32->win32 console application -> finish și inserați codul build and run. Nu eliminați #include "stdafx.h". Pentru că ar trebui să local windows debugger nu attach. –  > Por Raindrop7.
1 răspunsuri
BobMorane

Problema nu este cu codul tău. De asemenea, instalarea ar trebui să fie în regulă. Cred că nu ai configurat corect proiectul C++. Consultați acest tutorial, , care explică fiecare pas cu privire la modul de generare a unui proiect C++ Hello World valid în Visual Studio 2017.

Comentarii

  • Vă mulțumim! Am urmat tutorialul și pare să funcționeze mult mai bine. Primesc următoarele mesaj în Debugger – ar trebui să-mi fac griji în legătură cu asta? (Notă laterală: tutorialul original la care mă refeream nu avea #include "stdafx.h" linie, ce face asta?) –  > Por 2012ssohn.
  • Bun! Fișiere PDB sunt fișiere speciale care sunt generate atunci când construiți, astfel încât să puteți să vă potriviți executabilul cu fișierele sursă și, prin urmare, să depanați. Se pare că nu v-ați setat proiectul astfel încât să fie generate fișiere PDB și, prin urmare, depanarea nu funcționează. În ceea ce privește stdafx.h, , acesta este un antet specific Microsoft, dar nu aveți nevoie de el pentru programul dumneavoastră. Dacă aveți nevoie de mai multe detalii, vă sugerez să faceți întrebări separate. –  > Por BobMorane.
  • BTW nu vă fie teamă să căutați pe web pe Visual Studio, Microsoft are o documentație online excelentă în acest sens. –  > Por BobMorane.