Visual Studio 2012 neben 2010 - kernel32.lib, windows.h

8

Ich habe gerade Visual Studio 2012 neben Visual Studio 2010 installiert. Das Problem ist, dass ich einfache Projekte von 2010 bis 2012 nicht konvertieren kann - sie können nicht mit Dateien wie kernel32.lib oder Include-Dateien wie Windows verlinken. h. Mein System hat auch Windows SDK 7.1 installiert.

Ich habe versucht, mit Property Manager für meine x86 und x64 Benutzerplattformen zu spielen (da ich entsprechende $ (DXSDK_DIR) Referenzen hinzugefügt hatte), nur um gemischte Ergebnisse zu bekommen - manchmal funktioniert es einfach, manchmal kompiliert es aber nicht manchmal stoppt es einfach bei windows.h

Zum Beispiel bekomme ich gerade

%Vor%

oder

%Vor%

(abhängig von der Aufnahme oder nicht von "windows.h") mit einem einfachen "Hallo Welt" Typ Programm nur in x64.

In den Projekteigenschaften für Active(Debug) / Active(x64) -> VC++ Directories -> Include Directories kann ich nun $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSDK_IncludePath);$(DXSDK_DIR)Include sehen. Wenn ich dieses Eingabefeld erweitere und auf Bearbeiten klicke, sehe ich:

%Vor%

Während sich mein Plattform-Toolset v110 windows.h auf c:\Program Files (x86)\Windows Kits.0\Include\um\Windows.h befindet (also sollte es kein Problem geben). Stuff funktioniert, wenn ich Windows SDK 7.1 als Plattform-Toolset auswähle.

Irgendeine Lösung neben der Formatierung und der Neuinstallation von Windows?

L.E. Wenn ich die $ (variablen) Verzeichnisse durch absolute Pfade innerhalb des Systems ersetze, funktioniert alles. Ich verstehe nicht, warum ich das mache, da ich das Projekt auch mit anderen teile.

    
foxx1337 17.11.2012, 01:25
quelle

2 Antworten

8

Ich weiß, dass es oben fast eine Antwort gibt. Aber ...

Das Problem scheint zu sein, dass bei der Installation von VS2012 und VS2010 die Konfiguration für VS2012 nicht korrekt funktioniert.

Die Korrektur besteht darin, die Requisiten-Dateien in% home% \ AppData \ Local \ Microsoft \ MSBuild \ v4.0 zu bearbeiten.

Dies sind die Dateien, die für mich mit SDK v8.1 funktionierten.

Erste Microsoft.Cpp.Win32.user.props, die für 32-Bit-Builds verwendet wird:

%Vor%

Jetzt Microsoft.Cpp.x64.user.props, das für 64-Bit-Builds verwendet wird:

%Vor%

Ich hoffe, das hilft anderen bei diesem Problem, ich habe nirgendwo anders eine Lösung gefunden.

    
Andy Rushton 12.12.2013 20:00
quelle
4

Ich hatte ein ähnliches Problem.
In meinem Fall war das, weil die richtigen Pfade nicht in den Projekteinstellungen geerbt wurden.

Überprüfen Sie, ob die Pfade geerbt sind: Projekt - & gt; Eigenschaften - & gt; VC ++ - Verzeichnisse
Gehen Sie unter Einschließen und Bibliotheksverzeichnisse zu Bearbeiten .

Stellen Sie sicher, dass Inherit from parent or project defaults aktiviert ist.

Die Standardeigenschaften und Makros von VS2012 wurden korrekt festgelegt. (Obwohl ich die üblichen Installationsprobleme hatte, bei denen ich das gesamte VC-Verzeichnis ersetzen musste, weil es nicht einmal die C ++ - Kernbibliotheken installiert hatte)

    
Yochai Timmer 09.03.2014 12:43
quelle