変数の追加が出来ません。 – プログラミング – Home

変数の追加が出来ません。
 
通知
すべてクリア

[解決済] 変数の追加が出来ません。


shang
 shang
(@shang)
ゲスト
結合: 17年前
投稿: 23
Topic starter  

MFC 2005VC++です。

コントロールを右クリックしても変数の追加が選択出来なくなってしまいました。
復活方法を教えて頂きたいのですが。

既存のダイアログからボタン類をコピペしてDDX宣言と変数宣言を自分で書きました。
コンパイルは通るのですが、そのダイアログを開くとAssertion Failedになります。
場所はdlgData.cpp(42)です。

そこで変数の追加からやり直そうかと思ったのですが、そのダイアログのコントロール
全て変数の追加が出来なくなっています。クラスの追加は選択できます。

そのコントロールに新規でコントロールを追加しても変数の追加は選択出来ません。

作り直すしかないのでしょうか?


引用未解決
トピックタグ
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

2005はExpressしか使ったことがないのですが、
2003までの場合ですと、変数の追加の機能は少し怪しいようで、
エディタでヘッダーファイルを編集し、直接変数を追加する方が確実です。

shangさんが今抱えている問題は、実行時エラーになることと、
変数の追加の機能が使えないことの2つに分けて考えられます。

実行時エラーについては、デバッグしましょう。
その過程で変数の追加が必要ならば、ヘッダーファイルに直接書き込みます。

変数追加機能が使えないことについては、まず思いつくのは、
ウィザードが変数を追加する場所を探す時に
手がかりとして使っている部分が書き換えられている、というケースです。

該当するヘッダーファイルとソースファイルを調べ、壊れている部分を
修復してやればよいのですが、まず、新しいプロジェクトで
変数追加前後のファイルを調べ、ウィザードが正しく作成するコードを
理解しましょう。それと追加できないプロジェクトのコードを比較して、
修復します。

ま、作り直した方が早いと思います。


返信引用
shang
 shang
(@shang)
ゲスト
結合: 17年前
投稿: 23
Topic starter  

回答ありがとうございます。

自分で書く箇所は、cppファイルのDDX_Control宣言の箇所と、ヘッダファイルの宣言だ
けかと思ってたのですが、、
ウィザードで使用する場所を壊してしまったのかもしれませんね。

ちなみにAssertion Failedのエラー箇所はまさにDDX_Controlの内部で発生していますの
でよく分かりません。
渡す引数は全て確認して正常に定義されているはずなのですが・・・

ちょっと作り直してみます。


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

作成されていないコントロールに対して割り当てを行なおうとすると
そんな感じになったような気がしますけれど。
リソース上に使われているIDと使っているIDが本当にあっているか
確認した方が良いような気がします。
IDの定義がれソースヘッダ上にあれば、コンパイルは通りますから
ありえる話でしょう。
自分で直接編集した場合は特にありえると思います。

あと、クラスウィザードのファイルが壊れていると言うケースは
考えられないでしょうか?
拡張子がclwのファイルを一度リネームしてIDEを起動しなおしても
直りませんか?


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

あうあう。
誤字。

誤)
IDの定義がれソースヘッダ上にあれば、コンパイルは通りますから

正)
IDの定義がリソースヘッダ上にあれば、コンパイルは通りますから


返信引用
shang
 shang
(@shang)
ゲスト
結合: 17年前
投稿: 23
Topic starter  

回答ありがとうございます。
定義ファイルの修復など、やってみたのですが駄目でした。。
結局新しいフォームを作りなおしました。

やはり自分で書くと良くないですね、、
次からは気をつけます。

ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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