none
アンマネージドdllのデバッグ RRS feed

  • 質問

  • VS2013ExpressのC++でアンマネージドのdllを作成し、VS2013Express C#のWPFアプリからDllImportを使って呼び出して使用しています.

    dllの中にブレークポイントを設定しステップ実行したいと思い、

    http://bbs.wankuma.com/index.cgi?mode=al2&namber=48884&KLOG=82

    上記サイトの内容を参考に設定しています.

    調べながら設定を実行していると

    <sentencetext xmlns="http://www.w3.org/1999/xhtml">Visual C# Express などの Visual Studio Express Edition では、アンマネージ コードのデバッグはサポートされていません。</sentencetext> <sentencetext xmlns="http://www.w3.org/1999/xhtml">これは、Visual Studio の完全バージョンでのみサポートされます。</sentencetext>

    との記載がありました.

    VS Expressではdllのデバッグは実行できないのでしょうか?Communityならば可能でしょうか?

    2016年3月24日 23:20

回答

すべての返信

  • Expressは使用していないので可能かどうかはわかりませんが、

    プロジェクトのプロパティのデバッグページにて[アンマネージ コード デバッグを有効にする] にチェックを付ける必要があります。

    • 回答の候補に設定 佐祐理 2016年3月26日 6:16
    • 回答としてマーク protecyamyam 2016年4月2日 3:57
    2016年3月25日 0:48
  • VC++Express側でデバッグすれば、C++側のunmanagedなDLLコードはデバッグできるはずです。
    (実行ファイルに、c#のEXEを指定して、DLLのexport関数とかにブレークポイントを掛ける)

    VC#のEXEから、VC++のDLLにステップインしていきたい、ということであれば、CommunityとかProとかを入れる必要があるでしょう。


    jzkey

    2016年3月25日 0:53
  • VS2012からExpress版はfor Windows、for Windows Desktop、for Webに再編されたのでVC#、VC++という分かれ方はしていません。その上で、for Windows Desktopでは実現できない操作というコメントでしょうか?
    2016年3月25日 13:35
  • Express 2013 for Windows Desktop で試しましたが、「ネイティブコードデバッグを有効にする」でブレークかけられるみたいですね。

    2016年3月25日 15:12
    モデレータ
  • 検証ありがとうございます。やはり私の提示した手順で可能ということですね。
    2016年3月26日 6:16
  • 今回の検証において、2010 までは「アンマネージコードのデバッグ」という表現で、2012 からは「ネイティブコードのデバッグ」という表現に変わっていたことに気づきました。

    大差はないですが、そこのところだけ補足しておきます。

    2016年3月26日 13:05
    モデレータ
  • 皆様、ご教授ありがとうございます.

    本日時間が出来でしたので上記手順で試行してみます.

    2016年4月2日 1:39
  • c++とc#の2つのプロジェクトを1つのソリューションにまとめてから上記設定を実行することによって

    dll内でもデバッグできるようになりました.

    皆様、ありがとうございました.

    2016年4月2日 3:57