その後 – プログラミング – Home

通知
すべてクリア

[解決済] その後


pooh
 pooh
(@pooh)
ゲスト
結合: 22年前
投稿: 8
Topic starter  

皆さんいろいろありがとうございました。

またまた壁にぶつかってしまいました。

アプリケーションは1になったのですが
それをどのように動かすのかわかりません。

ソース、ヘッダーも入れてビルドはOKになりましたが
なにやら訳のわからないWINDOWがでてきました。
「Debug Assertion Failed!」です。
いったい何のことなのでしょうか?。

どのように動作しようと私は考えているか???。
1.実行すると一緒にDialog Boxが表示される。
2.1つめのアプリケーション内でボタンによりもう一つのDialogBoxが表示される。

どちから簡単方にしたのですがやり方がわかる方教えてください。

両方とも教えて頂けたら幸いです。


引用未解決
トピックタグ
ひろぴー
 ひろぴー
(@ひろぴー)
ゲスト
結合: 22年前
投稿: 182
 

>1.実行すると一緒にDialog Boxが表示される。
1.クラスウィザードのメッセージからWM_INITDIALOGを選択し、関数の追加を選ぶ。
2.追加された関数OnInitDialogでもうひとつのダイアログを呼び出す。
呼び出したダイアログがモーダルの場合は、そのダイアログを閉じるまで最初のダイアログに制
御が移らない。

>2.1つめのアプリケーション内でボタンによりもう一つのDialogBoxが表示される。
1.クラスウィザードのオブジェクトIDから、ボタンのIDを選び、メッセージのCOMMANDを選択
し、関数の追加を選ぶ。
2.追加された関数でもうひとつのダイアログを呼び出す。

こんな感じでしょうか?


返信引用
Tigger
 Tigger
(@Tigger)
ゲスト
結合: 22年前
投稿: 2
 

その後ということなので。
どのスレッドの続きが書いていただけるとうれしいのですが。
.rcを統合した時、IDが変わってしまったものとかないですか?

>「Debug Assertion Failed!」です。
>いったい何のことなのでしょうか?。

ソースに書かれたIDがリソースに実在しない場合よく出ます。
( その他の場合も多々ありますが ^_^; )
再試行ボタンを押すとエラー箇所が表示されます。
多分自分が書いた覚えのない部分が表示されるでしょうが
呼び出し元をたどっていけば原因は判ると思います。


返信引用
pooh
 pooh
(@pooh)
ゲスト
結合: 22年前
投稿: 8
Topic starter  

コメントありがとうございます。

まだ解決していません。

Tiggerさんの指示通りやって見た結果を報告致します。

>.rcを統合した時、IDが変わってしまったものとかないですか?
変わったところはみあたりませんでした。
だた、resource.hの中にあるIDの番号が重複しているものがあるのですがよろしいのでしょう
か?。

>ソースに書かれたIDがリソースに実在しない場合よく出ます。
> ( その他の場合も多々ありますが ^_^; )
>再試行ボタンを押すとエラー箇所が表示されます。
APPCORE.CPP
 CWinApp::CWinApp(LPCTSTR lpszAppName)
  ASSERT(afxCurrentWinApp == NULL); // only one CWinApp object please
にてエラーが出ています。

いろいろ試していますがわかりませんので何かおわかりになりましたら
おしえてください。


返信引用
n
 n
(@n)
ゲスト
結合: 23年前
投稿: 159
 

CWinApp派生クラスのインスタンス( CxxApp theApp; てな記述のこと )
が複数ないですか?


返信引用
pooh
 pooh
(@pooh)
ゲスト
結合: 22年前
投稿: 8
Topic starter  

お世話になっています。

ひろぴーさんの回答についてもう少し教えてください。

>>1.実行すると一緒にDialog Boxが表示される。
>1.クラスウィザードのメッセージからWM_INITDIALOGを選択し、関数の追加を選ぶ。
>2.追加された関数OnInitDialogでもうひとつのダイアログを呼び出す。
>呼び出したダイアログがモーダルの場合は、そのダイアログを閉じるまで最初のダイアログに
>制御が移らない。

1.のところで「WM_INITDIALOGを選択し、関数の追加を選ぶ」とありますが
WM_INITDIALOGが太文字になっていて選択しても関数の追加ができません、どうしてでしょう
か?。

>>2.1つめのアプリケーション内でボタンによりもう一つのDialogBoxが表示される。
>1.クラスウィザードのオブジェクトIDから、ボタンのIDを選び、メッセージのCOMMANDを選
択し、関数の追加を選ぶ。
>2.追加された関数でもうひとつのダイアログを呼び出す。

ボタンを作成して、関数の追加をしました。
そこで関数の中の処理はどのようにしたらよろしいのでしょうか?。

本当に初心者&勉強不足のためわかりません。
みなさんには「それくらい勉強しろ」と思われるかもしれませんが
勉強している時間がないために皆さんのお力を借りたいので
よろしくお願いいたします。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

> WM_INITDIALOGが太文字になっていて選択しても関数の追加ができません、
> どうしてでしょうか?。

すでに定義されているのではないかと。
void XXX::OnInitDialog() ってメソッドがありませんか?

> ボタンを作成して、関数の追加をしました。
> そこで関数の中の処理はどのようにしたらよろしいのでしょうか?。

もうひとつのダイアログを呼び出す。

> 勉強している時間がないために皆さんのお力を借りたいので

そんなのは言い訳になりません。


返信引用
ひろぴー
 ひろぴー
(@ひろぴー)
ゲスト
結合: 22年前
投稿: 182
 

> ボタンを作成して、関数の追加をしました。
> そこで関数の中の処理はどのようにしたらよろしいのでしょうか?。

ダイアログの呼び出し方はpoohさんのソースの中にあるハズですので、探してみて下さい。
両方とも(明記されていないので分かりませんが、少なくとも片方は)ダイアログベースのアプ
リだった訳ですから。

> 勉強している時間がないために皆さんのお力を借りたいので

コレは、とりあえず今回のアプリが出来れば身に付かなくてもいいという事なんでしょうか?


返信引用
汎
 汎
(@汎)
ゲスト
結合: 22年前
投稿: 43
 

> 勉強している時間がないために皆さんのお力を借りたいので

これをいったら、普通は放置かな・・・ (^^A;;


返信引用
pooh
 pooh
(@pooh)
ゲスト
結合: 22年前
投稿: 8
Topic starter  

皆さん本当にありがとうございました。

「勉強している時間がないために皆さんのお力を借りたいので」いけない発言でした。
皆さんも時間を作って勉強しているのに私は努力もしないでみなさんに聞いて

みなさん本当にご迷惑おかけしました。

これからは、自分で調べて解決いたします。


返信引用
汎
 汎
(@汎)
ゲスト
結合: 22年前
投稿: 43
 

>これからは、自分で調べて解決いたします。

なんか勘違いしてる?
別にさぁ 人のためにここに書き込んでるわけじゃないわけ。
人がつまずく内容って、将来、自分や新人君がつまずきそうな内容だから、
興味が先にあって、いっしょに調べるんだよね。

一人で全部解決できるならそれに越したことないけど、
この問題は糸口すらわからん なんてことはたくさんあるでしょ

一人で物を作るって人は少数派ですよ。
私なども人に助けてもらいながら協力して作ってるし。
これわからんなぁ って奴はこれからも質問したらどうですか?

ちなみにこの問題はくっつける前の二つのAppクラスの
InitInstanceにどういうコードがあって
どううごいていたかって部分を勉強しなおすといいかもです。


返信引用
Tigger
 Tigger
(@Tigger)
ゲスト
結合: 22年前
投稿: 2
 

もう見ないかもしれませんが・・・

>だた、resource.hの中にあるIDの番号が重複しているものがあるのですが
>よろしいのでしょうか?。
あまりよろしくはないですが、IDが使われているダイアログが別物ならセーフです。
1つのダイアログの中にそれらのIDが含まれていたり、
2つのダイアログのID番号が同じ場合はアウト。コンパイルエラーがでたと思います。

>APPCORE.CPP
> CWinApp::CWinApp(LPCTSTR lpszAppName)
>  ASSERT(afxCurrentWinApp == NULL); // only one CWinApp object please
>にてエラーが出ています。
n さんの 2003/05/08(木) 10:34:44 の通りかと。

2つのプロジェクトを統合した場合、片方のプロジェクトの少なくとも5ファイルは取り
扱い注意。
(stdafx.h,stdafx.cpp,resource.h,(プロジェクト名).h,(プロジェクト名).cpp)
クラスウィザードが使えなくなる場合もあるし。(一旦 .clwを消せばいいけど)
元のを参考にしながら新しく作ったほうが混乱しないし 身に付くと思いますよ。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました