2015-07-29 21 views
5

Ich möchte einen Kernel-Treiber mit Visual Studio 2015 schreiben, also habe ich das Windows 10 SDK und WDK neben installiert VS 2015.WDK, intellisense und C: "Befehlszeilenfehler: Ausnahme-Behandlung Option kann nur beim Übersetzen C++ Treiber verwendet werden"

Ich erstellte leere Kernel-Treiber-Projekt und main.c innerhalb des Projekts.

jedoch Intellisense funktioniert nicht und Fehlerliste zeigt:

"command-line error: exception handling option can be used only when compiling C++ driver"

Ich nehme an VS will, dass ich mein Projekt auf c codieren ++, aber ich will nicht auf c codieren ++. Ich hasse Casting beim Zuweisen von Speicher usw. Gibt es einen Workaround dafür?

Dank

+0

Wenn Sie C++ Speicherallokatoren verwenden dann müssen Sie nicht werfen ... –

+0

Aber ich habe andere Gründe, nicht C++ in einem solchen Projekt zu schreiben (und wie kann ich den Typ angeben (z. B. ausgelagerten, nicht ausgelagerten Speicher oder User-Mode, Kernel-Mode-Speicher) über den C++ - Allokator) –

+0

Es macht fast nie Sinn, C über C++ zu wählen, da C++ als "besseres C" geschrieben werden kann. Es gibt kein Gesetz, das besagt, dass Sie OO-Konstrukte verwenden müssen oder dass Sie "malloc", die OS-Speicher-APIs oder etwas anderes, das Sie auswählen, nicht verwenden können. Ich habe Treiber in C++ geschrieben, die Sie von C nur schwer durchschauen könnten, aber sie genießen die Vorteile, die C++ mit sich bringt. –

Antwort

0

Visual Studio 2015 Update 1 vor kurzem veröffentlicht. Das Problem ist jetzt weg, alles funktioniert wie immer.

2

C++ in der Regel nicht im Kernel-Modus-Treiber verwendet, weil es nicht unterstützt wird. Ich benutze C++ in meinen Treibern, aber das ist die Ausnahme.

Ich sehe das gleiche Problem mit VS 2015. Erstellen Sie einfach eine leere C-Datei in Ihrem Projekt und Sie werden das Intellisense (~) in der ersten Spalte der ersten Zeile sehen. Dies bedeutet, dass Intellisense jetzt für alle C-Quelldateien im Wesentlichen defekt ist.

+0

Gibt es eine Problemumgehung für dieses Problem?/Kennt Microsoft diesen Fehler? –

+3

Keine Problemumgehungen für jetzt, und hier ist der Fehlerbericht: https://connect.microsoft.com/VisualStudio/feedback/details/1623363/error-command-line-error-exception-handling-option-can-be-used- only-when-compiling-c – AlexPi

-1

Die offensichtliche Problemumgehung besteht darin, IntelliSense zu deaktivieren.
Wählen Sie im Menü "Extras" die Option "Optionen". Klicken Sie dann auf "Texteditor", "C/C++", "Erweitert". Suchen Sie im rechten Bereich nach "InelliSense" und ändern Sie den Wert für "DisableIntelliSense" auf "True".

+1

Dann würde es keine Code-Vervollständigung geben ... Es ist keine Workaround, es ist nur so wie "nicht verwenden, wenn es nicht funktioniert" –

+0

Nun, wenn Ihr Code doesn ' t kompilieren dann können Sie es überhaupt nicht verwenden. – drimtajm

+0

Sorry, ich wusste nicht, dass der Build erfolgreich ist, selbst wenn IntelliSense Fehler gibt. – drimtajm