質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.49%

  • C

    4639questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

  • C++

    4503questions

    C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

  • Windows Driver Kit (WDK)

    3questions

(WDK)unresolved external symbol @_CheckForDebuggerJustMyCode@4 referenced in function _DriverEntry@8

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 382

mercurian-teto

score 65

環境

windows10 pro
visual studio2017
WDK 1803

質問

windows10でwindowsデバイスドライバ
http://inaz2.hatenablog.com/entry/2015/09/12/215337
のサンプルを動かしたのですが、下のようなエラーが発生します。
エラーの外し方を教えてくださいませんか。

/* hello.c */
#include <wdm.h>
#pragma warning(disable: 4100)

DRIVER_INITIALIZE DriverEntry;

NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
{
    DbgPrint("Hello, World!\n");
    return STATUS_SUCCESS;
}


以下エラーです。

unresolved external symbol @_CheckForDebuggerJustMyCode@4
referenced in function _DriverEntry@8



LNK1120    1 unresolved externals    hello    C:\Users・・・\hello.sys    1    

試したこと

①プラットフォームを確認してみるとx64
このサイトに書いてあるとおり
・ソリューションファイルを開いて
Configuration Properties -> C/C++ -> General -> Support Just My Code DebuggingをNOにして

・"Configuration Properties" -> "C/C++" -> "Command line" -> "Additional Options"において/JMCを追加
③http://inaz2.hatenablog.com/entry/2015/09/12/215337
のinfファイルの編集をしてみるのとしてみない方法を試したが
同じエラーが起きる。

追記①
/JMC-
イメージ説明

Support Just  My Code
イメージ説明

Enable Just My code
イメージ説明

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

The workaround is to disable JMC via one of the following methods:
1. in project settings, "Configuration Properties" -> "C/C++" -> "General": "Support Just My Code Debugging". Change to NO.
2. in project settings, add /JMC- to "Configuration Properties" -> "C/C++" -> "Command line" -> "Additional Options"

リンク先に記載されている内容は1.または2.を行うです。

また質問に記載されている

"Additional Options"において/JMC

は間違っています。JMCをオフにする必要があるのだからマイナスをつける必要があります。
/JMC-
/JMC (マイ コードのみのデバッグ)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/09/20 16:17

    返信ありがとうございます。
    追記の画像のように設定しました。
    <リンク先に記載されている内容は1.または2.を行うのです。
    両方とも設定していたのを片方だけに設定し直したりしたのですが、
    エラーは依然でてきます。
    また、下のサイトではenable-just-my-codeを設定するようにあったのでこちらも試しましたが、エラーは消えませんでした。
    https://www.osr.com/blog/2018/08/16/new-vs15-8-feature-breaks-wdk-1803-workaround/

    どこら辺が間違っているでしょうか。

    キャンセル

  • 2018/09/20 22:59

    新しく添付された1枚目の画像を見ると、Platformがx64になっていますが、
    3枚目の画像を見るとx86 platformでビルドしようとしています。
    一枚目の画像でPlatformをx86にして、再度Support Just my code debuggingをNoにしてください。

    キャンセル

  • 2018/09/21 00:24

    hmmmさんが指摘したとおりに
    1枚目と3枚目の画像のPlatformを合わせれば、
    質問の冒頭でいっていたエラーは出なくなりました。
    私の環境の場合64bitなのでx64にあわせました。
    回答ありがとうございました。

    キャンセル

同じタグがついた質問を見る

  • C

    4639questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

  • C++

    4503questions

    C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

  • Windows Driver Kit (WDK)

    3questions