
いつも拝見させていただいております。
さっそくですが、質問致します。
現在、ネイティブなC++ DLLを作成しています。
これを今回、C#のアプリケーションから呼び出すことになりました。
DLL内にはクラスを作成しており、内部にXMLのデータを保持するような
クラスを作成しております。(XML操作にはMSXMLを使用しております。)
問題なのはC++アプリケーションから呼び出した時は正常に動作するのですが、C#からの呼び出しの時はC++アプリケーションから呼び出した時には発生していないエラーが検出されます。
エラー内容は
System.AccessViolationException
保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。
になります。
エラー内容からしてC++内でのメモリ操作に問題があると
思われるのですが、C++からの実行時には検出されていないので理由がわからずに困っております。
ネイティブなDLLに対してはデバッグも行えないため、手に負えません。
(現在、1行ごとにログを埋め込み、TCHAR型のnewを4byte行っている箇所で処理がストップしてしまっているようです。C++からの呼び出し時には正常に処理される箇所です。)
ネイティブなDLLに対してのデバッグ方法や似たような現象にあわれた方がいらっしゃいましたらご助力お願い致します。
・対象のDLLのクラスは_declspec(dllexport)にてエクスポートを行っています。
・C#からの呼び出し時にはネイティブなDLLのためC++/CLIで作成したプロジェクトでラッパークラスを作成してアクセスを行っています。
・C++アプリケーションからの呼び出し時はプロパティの設定でインクルードディレクトリ、LIBファイルの設定等を行って直接DLLを参照して
実行(呼び出し)しています。
No.1ベストアンサー
- 回答日時:
C++側の出力ファイル .DLL .PDB などを C#の出力フォルダ bin\debug などに出力しておいて
C#側のプロジェクトプロパティのデバッグの『アンマネージ コードのデバッグ』にチェックを付けておく
こうしておけば C++のコードもデバッグできると思いますよ
この回答への補足
ご回答頂いた内容にてアンマネージドコードのデバッグは
可能となりました。
ですが、また厄介なことにC#からの呼び出し時にデバッグしてみても
エラーとなりません。
アンナネージドコードデバッグを無効に設定すると再度現象が発生します。
他に何か有益そうな情報がありましたらご教授願いします。
回答ありがとうございます。
なるほど。設定を行うことでデバッグが可能となるとは思いませんでした。
これで少し進展があればよいのですが。。
ご助力ありがとうございます。
No.2
- 回答日時:
デバッグビルドではなくリリースビルドにして
C++DLL側を Debug情報の生成=はい にして
デバッグしてみてはいかがでしょう
デバッグビルド時に具現化しないバグも捕まえられるかもしれません
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) IT初心者です 仕事で、vb.netで作成されたdllをvbaで呼び出すプログラムを作成しろと言われ 1 2023/03/27 08:22
- Excel(エクセル) Indirect関数について、Formulatextで抽出した数式を参照したい。 1 2022/12/15 11:16
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- Excel(エクセル) 【VBAファイル移動】2つのマクロを順に実行。1つ目のマクロが実行不可⇒2つ目が実行不可となる件 2 2022/07/29 12:17
- いじめ・人間関係 Aが泣いてるのは、B達が呼び出されてるのと関係あると思う? 1 2022/05/08 21:35
- その他(プログラミング・Web制作) FORTRAN77の配列(除算) 2 2023/02/01 14:34
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
visual studio 2019 についての...
-
VB6.0を使用しています
-
Windows10 VisualStudioでMFC環...
-
VB6 exe作成時のアイコン変更方法
-
Visual studio2017で、2回目の...
-
DLL参照時に指定されたモジュー...
-
eclipseでデバックするとエラー...
-
Visual Studio 2017 ビルドする...
-
visual studio2019でデバッグが...
-
起動時に何のダイアログも表示...
-
Visual C++6.0 デバッグ中にグ...
-
VB6のデバッグ
-
VC++でSQL Serverに接続するに...
-
ダイアログなどの文字列が文字...
-
VB2005のソリューション内の共...
-
VC++6 EXEをDLLに変換
-
ASP.NET exeの作成方法
-
Eclipseのブレークポイントが○...
-
VC6 でのデバッグ時にブレーク...
-
VB6 ClassにてEnum(列挙型)の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
visual studio2019でデバッグが...
-
DLL参照時に指定されたモジュー...
-
eclipseでデバックするとエラー...
-
Visual studio2017で、2回目の...
-
デバッガでステップ実行してい...
-
起動時に何のダイアログも表示...
-
デバッグとビルドは何が違うの...
-
Eclipseのブレークポイントが○...
-
ソリューションをまたがるデバ...
-
VB.netを実行するとデバック プ...
-
visual studio 2019 についての...
-
visual studio 2008 のデバッグ...
-
vb ver6 でformat文やTrim文の...
-
vb2010にてASPWEBシステムを作...
-
VB6.0を使用しています
-
VC++でDeugモードOKで、Release...
-
VB6 exe作成時のアイコン変更方法
-
vbprojファイルが開けません
-
Visual Studio 2017 ビルドする...
-
ASP.NETでデバッグができない
おすすめ情報