アプリ版:「スタンプのみでお礼する」機能のリリースについて

hDC=::GetDC(m_hWnd)とhDC=GetDC(m_hWnd)の違いについて

表題について,お伺いします。
ビットマップをダイアログに表示するソースコードを
書いてますが,参考書やさまざまなHPでは,
ウィンドウハンドルをゲットする際に

hDC=::GetDC(m_hWnd) ○
↑と書かれております。

hDC=GetDC(m_hWnd)  ×
↑はなぜだめなのでしょう。

 ●このスコープ演算子::は何の為につけているのですか?

::が無いとエラーになるので必要みたいですが・・

A 回答 (1件)

どういうエラー(リンクエラー、コンパイルエラー)なのかがわからないので、


あくまで憶測ですが、
Windows.hで定義されているGetDC()の他に、
別のスコープに(例えばクラスのメソッドとして)、
GetDC()が定義されているのではないでしょうか?

上記の状態でスコープ演算子がないときには、
同じクラス(スコープ)にあるGetDC()を先に呼ぶことになるので、
目的のWindows.hのGetDC()を呼ぶことができないのだと思います。

参考URL:http://wisdom.sakura.ne.jp/programming/cpp/cpp7. …
    • good
    • 0
この回答へのお礼

「GetDC()」は「Winuser.h 内で宣言」とありました!
つまりMFCを利用する際にはグローバルスコープ解決演算子が
必要になる訳ですね。
::がなければMFCの「GetDC()」を使ってしまうので
「GetDCが不正な実引数1個を伴って・・・」という
エラーが出た様です。

参考のHPが理解にとても役に立ちました。
ありがとうございました。

お礼日時:2010/03/24 11:38

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