- - PR -
Managed C++でのC++言語の挙動について
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-12-11 02:01
現在、Managed C++ でアプリケーションを開発しているのですが、以前作っていた C++ 言語で書かれたソースコードを呼ぶ必要があります。そこで、同じプロジェクトにいれて、コンパイルをしてみたところ、必要なファイルを的確にあわせることで、コンパイル&実行をすることができました。しかし、実行をよく見てみると、対象のクラスが生成されるところで、処理がスキップ(コンストラクタから抜けて)しています。
断片的で申し訳ございませんが、もし原因がわかるかたがいらっしゃいましたら、お力添えをして頂けると幸いです。 | ||||||||
|
投稿日時: 2005-12-11 10:24
それは「以前作っていた C++ 言語で書かれたソースコード」上で、の話なのでしょうか? コンストラクタから抜けるのは、果たしてどちらを指すのでしょうか? また、「対象クラス」がどちらを指すのかが判りませんでしあ。 「対象クラス」が以前作っていた側を指すのであれば、デバッガがアタッチできないだけだと思います。 例外は発生していないんですよね? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-12-11 12:35
プロジェクト設定でアンマネージデバッグを有効にしてないとか。 | ||||||||
|
投稿日時: 2005-12-11 13:45
渋木宏明(ひどり) 様:
おそらくVisual C++ のプロジェクトの設定項目では「プロジェクト設定でアンマネージデバッグ」はないようです。 | ||||||||
|
投稿日時: 2005-12-11 13:51
じゃんぬねっと様:
失礼しました。えっと、Managed C++ のソースコードから、Unmanaged C++ クラスを生成するときの話です。たとえば CClass *cKyo; cKyo = new CClass(); などとしたとき、new CClass のステートメントから 1 ステップ進めただけで、次のブレークポイントまでとんでしまいます。 | ||||||||
|
投稿日時: 2005-12-11 15:34
こんにちは。
いまいち状況がわからないのですが、CClass のコンストラクタ内にステップインしようとして、次の行にステップオーバーしてしまうという事でしょうか? それとも、普通に次の行にステップオーバーしたいが、次のブレークポイント(例えば、10行後に設定しているとか)まで飛んでいってしまうのでしょうか? _________________ 囚人のジレンマな日々 | ||||||||
|
投稿日時: 2005-12-11 15:38
あります。 プロジェクトのプロパティの「構成プロパティ」「デバッグ」ページの「デバッガのタイプ」で指定します。 | ||||||||
|
投稿日時: 2005-12-11 16:00
囚人様:
こんにちは。 えっと、詳細を話しますと、ある ClassA のコンストラクタ内から、ClassB のコンストラクタを呼び出す(new ClassB)のところに、ブレイクポイントを仕掛けております。コンストラクタの処理は、それで終わりではなく、new ClassB 生成のあとに、OutputDebugString でメッセージを出しております。にも関わらず、ClassA の内ブレイクポイント(new ClassB)でとまるんのですが、そこからステップ実行しようとすると、OutputDebugString での文字が表示されるどころではなく、その ClassA のコンストラクタからでて、ClassA のコンストラクタ呼び出しの後処理であるブレイクポイントのところまで飛んでしまいます。 よろしくお願いします。 |