Leeres WinAPI-Projekt erstellen mit MS VS 2022 ?
-
Erstellt man ein leeres Projekt in MS VS 2022 für Windows, dann ist dieses für <SubSystem>Console</SubSystem> eingerichtet. Auch im Präprozessort findet man: <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
Natürlich kann man dies manuell ersetzen in der vcxproj-Datei, aber wie macht man es gleich richtig, ohne Windows-Code zu erhalten, denn diesen will man selbst in einer Datei Main.cpp mitbringen.
Ich habe folgenden Text zum Nachbessern entworfen:
Instructions for creating the program using MS VS 2022: You should start with an empty project and configure it correctly. Here’s how you can do it:
Create a New Project:
Open Visual Studio 2022.Go to File -> New -> Project.Select Empty Project and click Next.Provide a name and location for your project and click Create.
Configure Project Settings:
Right-click on your project in the Solution Explorer and select Properties.Under Configuration Properties, navigate to Linker -> System.Change the Subsystem from Console to Windows.
Add Preprocessor Definitions:
In the same Properties window, navigate to C/C++ -> Preprocessor.Remove _CONSOLE from the Preprocessor Definitions field.Ensure that any necessary preprocessor definitions for your project are included.
Add Your Existing Main.cpp, ... Files:
Right-click on your project in the Solution Explorer.Select Add -> Existing Item....Navigate to the location of your existing Main.cpp, ... files, select it, and click Add.
Build and Run Your Project:
Press Ctrl + Shift + B to build your project.Once the build is successful, press F5 to run your project.
If you prefer to modify the .vcxproj file manually, here is an example of what the relevant sections might look like after changes:<ItemGroup>
<PropertyGroup>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<GenerateManifest>true</GenerateManifest>
<SubSystem>Windows</SubSystem>
</PropertyGroup>
<PropertyGroup Condition="'(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>true</GenerateManifest>
<SubSystem>Windows</SubSystem>
</PropertyGroup>
</ItemGroup><ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
</Link>
</ItemDefinitionGroup>If there are still problems, search for "console" in the vcxproj file and replace it with "Windows" for Subsystem and delete it in the preprocessor definitions.
-
Wenn man dies öfter benötigt, so kann man auch eine eigene Projektvorlage erstellen: Erstellen von Projektvorlagen
Der Standardpfad dafür ist: Documents\Visual Studio 2022\Templates\ProjectTemplates
-
Danke für den Hinweis!