プロが教える店舗&オフィスのセキュリティ対策術

始めまして,
少し古いですがC++6.0を使用しております。
ある2つの機器をC++で動かそうと思っており,それぞれのサンプルブログラムを眺めておりました。
(それぞれのサンプルプログラムには各ダイアログが用意されており,実行することで使用できております。)
そのなかで,微妙に違うところがあり調べていたのですが,どうしても分からないので,教えてください。
1つのサンプルブログラムには
[code] #define _APS_NEXT_CONTROL_VALUE 1029[/code]
もう1つのサンプルブログラムには
[code] #define _APS_NEXT_CONTROL_VALUE 1028[/code]
とあります。
[code] #define _APS_NEXT_CONTROL_VALUE[/code]
を調べてみると
「次のコントロールに割り当てられるID」
と記されておりました。
と言うことは,付けられた番号がそれぞれの機械を動かすためのIDと考えました。
そこで,
もし2つの機械を1つのコード(ダイアログ)でコントロールをする場合,
resource.hの中に
[code] #define _APS_NEXT_CONTROL_VALUE 1029[/code]
[code] #define _APS_NEXT_CONTROL_VALUE 1028[/code]
を共存させても良いのでしょうか?
命令が同じだけにどうすればよいのでしょうか?
お教えください。よろしくお願い申し上げます。

A 回答 (4件)

>付けられた番号がそれぞれの機械を動かすためのIDと考えました。


そうですね。例えばダイアログ上のボタン等のはずです。

>命令が同じだけにどうすればよいのでしょうか?
「命令が同じ」って処が良く判りませんが、
2つの機械を1つのダイアログでコントロールする為に、例えば2つのボタンを配置するのならば、それぞれのボタンのIDは異なります。

>[code] #define _APS_NEXT_CONTROL_VALUE 1029[/code]
>[code] #define _APS_NEXT_CONTROL_VALUE 1028[/code]
>を共存させても良いのでしょうか?
それは(多分)マズイです。1つのダイアログ(のリソース定義)に付き1行だけです。

2つの機械の使い分け方法が不明なので具体的には???です。
    • good
    • 0
この回答へのお礼

お返事ありがとうございました。
2つの機械というのは大本の機械は1つだけなのですが,そこから2つの接続があります。Aの機械はインプット専用。Bの機械はアウトプット専用になります。大本の機械に対してAラインとBラインが別々になっております。1つのそふとでAラインとBラインを統括して動かしたいので,今回VC++6.0を使用して動かそうと思っております。
説明があまり得意ではないので逆にややこしくしているかもしれません。
申し訳ありません。

お礼日時:2024/02/28 00:08

正しい C や C++ のプリプロセッサなら, 同じマクロ名に対して異なる内容で #define しようとするとエラーになる. だから, 不安なときには「#define されていたら #undef したのち改めて #define」という手順をふむことになる.



逆にいうと「同じ内容なら複数回 #define しても問題ない」ので, 例えば
#define hoge hoge
#define hoge hoge
#define hoge hoge
なら大丈夫だ.

ところで「C++6.0」ってなんだろう....
    • good
    • 0
この回答へのお礼

お返事ありがとうございました。C++6.0というのはVisual C++6.0とかなり古いソフトのことです。
記載が不十分で申し訳ありませんでした。

お礼日時:2024/02/28 00:02

エラーになる?


黙って後のほうの #define が採用されるだけだと思うけど。
    • good
    • 0
この回答へのお礼

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

お礼日時:2024/02/28 00:02

>resource.hの中に


>#define _APS_NEXT_CONTROL_VALUE 1029
>#define _APS_NEXT_CONTROL_VALUE 1028
>を共存させても良いのでしょうか?

二重定義で普通にコンパイルエラーでしょう。

リソースエディタでコントロールを追加するときに割り振るコントロールIDの予約。みたいなモノです。
んで、何も考えずにニコイチすると、同じコントロールIDで別のコントロールが混在したりしませんかね?
ダイアログのIDがぶつかっていなければ、コントロールIDは被っていても大丈夫だったと思いますけど。

Teratailの方、放置しないでくださいね。
    • good
    • 0
この回答へのお礼

お返事ありがとうございました。
Teratailの方もきちんと返事をさせていただきました。

お礼日時:2024/02/28 00:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています