Wie erstelle ich Notepad ++ mit Visual C ++ 2010 Express?

7

Windows SDK ist installiert. Ich habe N ++ erfolgreich mit Visual C ++ 2008 Express erstellt. Aber jetzt mit 2010 habe ich viele Fehlermeldungen über sprintf_s :

%Vor%

Bitte helfen Sie.

    
thorn 14.09.2010, 15:04
quelle

3 Antworten

20

Es gibt ein Eigenschaftsfenster mit dem Projekt no_ms_shit.props (nach der Konvertierung). Es gibt eine Menge Hass in diesem Blatt für das, was MS in den letzten 5 Jahren versucht hat zu tun.

Sie sind ein wenig zu weit gegangen, um alles abzuschalten. Sie haben sogar die Verbindung zu sprintf_s () deaktiviert. Welches ist die Quelle Ihres Fehlers, der stdio.h-Header lässt die Deklaration aus, aber der String-Header verwendet sie. Nicht sicher, ob die Express Edition das Bearbeiten von Projekteigenschaftenblättern unterstützt, aber der Schritt in der Verkaufsversion ist:

  • Ansicht + Immobilienmanager
  • Öffne einen der Knoten und finde "no ms shit"
  • Klicken Sie mit der rechten Maustaste darauf, Eigenschaften
  • C / C ++, Präprozessor, Präprozessordefinitionen
  • Ändern Sie __STDC_WANT_SECURELIB__=0 zu 1
  • Fügen Sie _CRT_SECURE_NO_WARNINGS zu diesen Definitionen hinzu

Das Projekt kompiliert jetzt sauber. Ich erhalte einen Build-Fehler beim Kopieren von Dateien, es ist ein Post-Build-Ereignis. Starten Sie eine andere Frage, wenn Sie nicht herausfinden, wie Sie es beheben können.

    
Hans Passant 14.09.2010, 16:41
quelle
4

Seltsam. Ich habe Visual Studio 2010 Ultimate, und es erlaubt mir sogar nicht, auf den Menüeintrag View- & gt; Eigenschaftenseiten zuzugreifen. Es ist für mich deaktiviert.

Aber ich ging nur zur Datei no_ms_shit.props und editierte das nur in Notepad ++ :). Dann ging zu Project- & gt; Properties- & gt; Configuration Properties- & gt; General und wählte "No" für die Behandlung von Warnungen als Fehler, und hinzugefügt _CRT_SECURE_NO_WARNINGS in den Pre-Prozessor-Definitionen.

Don Ho sollte mit dem Fluss gehen, als die ms Scheiße zu verfluchen, wenn er in Windows und Visual Studio entwickelt.

Dies funktionierte für mich, wenn ich Visual Studio 2012 Professional verwendete:
  • Sie müssen no_ms_shit.vsprops (* .vsprops, nicht nur * .props!) bearbeiten:
    Ersetzen Sie __STDC_WANT_SECURE_LIB__=0 durch __STDC_WANT_SECURE_LIB__=1

  • Fügen Sie den Präprozessordefinitionen _CRT_SECURE_NO_WARNINGS hinzu.

Piyush Soni 01.11.2010 00:40
quelle
2

Ein genauerer Blick auf die Quelle würde zeigen, dass die meisten Bibliotheksaufrufe, die endloses Rauschen verursachen, wenn Sie dieses Eigenschaftsfenster nicht verwenden, aus dem SciLexer.dll-Projekt stammen. Scintilla ist plattformübergreifend und benötigt daher nicht alle Windows-spezifischen Funktionen. Wie Sie bereits erwähnt haben, ist Microsoft mit der Ersetzung der Standard-String-Bibliothek über Bord gegangen, so legitim wie der Versuch, Pufferüberläufe zu vermeiden.

Sie können also diese Kritik eher an Neil Hodgson (Hauptentwickler von Scintilla) als an Don Ho richten.

CChris

    
cchris 06.12.2010 13:50
quelle