質問: 0; } public static void Update() { counter += 1; } } } ``` ``` #include #using "CsharpPart.dll" using namespace CsharpPart; int main( void ) { CsharpParts::Update(); printf("%d\n", CsharpParts::counter); return 0; } ``` ### 補足情報(FW/ツールのバージョンなど) .NET Framwork 4.5 Visualstudio 2013 (v120)
回答: > > DLL は exe のフォルダにないとデバッグできないと考えた方がよいでしょうか? > > > そんなことはありません。別ディレクトリのdllをロードする手段はあります。 > > プロジェクトプロパティの設定を変更すれば、必ずデバッグできるハズでしょうか? > > > 各プロジェクトの出力先ディレクトリを同一にしてしまうのが手っ取り早いと思います。 > > コード自体で解決する方向で進めるべきでしょうか? > > > 私としては上で挙げた設定にしたほうがいいと思います。 パスを指定して dll をロードする方法だと、リリース時にそのフォルダ構成が強制されますし、プロジェクト階層を遡って隣のフォルダの dll を参照する処理が美しいとは思えないので。 参考までに x86/x64 で dll を切りかえる方法です。 C#からネイティブDLLを呼び出す場合のVSからのデバッグのジレンマを解決する