ぜんぜんわかりません。 – プログラミング – Home

ぜんぜんわかりません。
 
通知
すべてクリア

ぜんぜんわかりません。


アマチュアにすらなれない男
 アマチュアにすらなれない男
(@アマチュアにすらなれない男)
ゲスト
結合: 20年前
投稿: 2
Topic starter  

■ハンドルとクラスのマップ
typedef map<HWND, CMyAPP*, less<HWND> > THWndCMyAPPMap;
static THWndCMyAPPMap HWndCMyAPPMap;

■ハンドラー
static LRESULT WINAPI WndProc(
HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam
) {
THWndCMyAPPMap::iterator iter=HWndCMyAPPMap.find(hwnd);
if (iter==HWndCMyAPPMap.end())
return DefWindowProc( hwnd, msg, wparam, lparam );
CMyAPP* myapp=iter->second;
return myapp->WndProc(msg, wparam, lparam);
}

上記の二つの処理ですが、学校で出されたサンプルなのですが、
何をしているのかまったくわかりません。
どうか、おしえていただけませんでしょうか?


引用解決済
トピックタグ
島
 島
(@島)
ゲスト
結合: 23年前
投稿: 238
 

>上記の二つの処理ですが、学校で出されたサンプルなのですが、
>何をしているのかまったくわかりません。

どこで躓(つまず)いているのか、この書き方では分かりません
ですから、何をどうお答えすればいいのかも分かり兼ねます

map が分からないのでしょうか? map の find() が分からないのでしょうか?
CMyApp* myapp=iter ->second; が分からないのでしょうか?()
return myapp->WndProc(msg,wparam,lparam); が分からないのでしょうか?
それとも、それぞれの構成部品については分かるが、全体で何がしたいのかが
分からないのでしょうか?


返信引用
アマチュアにすらなれない男
 アマチュアにすらなれない男
(@アマチュアにすらなれない男)
ゲスト
結合: 20年前
投稿: 2
Topic starter  

早速のレス有難う御座います。
そうですね。
お書きになられているとおりです。

======================================
map<HWND, CMyAPP*, less<HWND>>
この処理ですが、このmapのなかのless<HWND>という処理は何をしているのか
わからないのです。
この処理はHWNDをCMyAPPから参照できるということですよね?

======================================
 // イテレータってなんでしょうか? キーhwndのイテレータを返す?
 THWndCMyAPPMap::iterator iter=HWndCMyAPPMap.find(hwnd);

  // 最後尾の要素なら
if (iter==HWndCMyAPPMap.end()){
    // プロシージャのアドレスを返している?
return DefWindowProc( hwnd, msg, wparam, lparam );
  }

  // secondってなんでしょう?
CMyAPP* myapp=iter->second;

  // プロシージャのアドレスを返している?
return myapp->WndProc(msg, wparam, lparam);


返信引用
とおりすがり
 とおりすがり
(@とおりすがり)
ゲスト
結合: 23年前
投稿: 180
 

C++およびC言語の基礎を勉強した方が絶対に近道です。
あなたがわからないところを全て教えていたのでは、本が一冊書けてしまいそう。


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

「とおりすがり さん」と同意のことですが

typedef、static、マップ、ハンドル、イテレータ 等
それぞれ言葉(単語)の意味がわからないのであれば
学校の先生に講釈してもらうのが早道だと思います

課題であれ質問のソースがc++のソースであった場合、最低(C言語基礎)は
熟知しているものとして扱われることが多いものです

ですから、C++/STLについて勉強を深めることをお勧めします


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

>map<HWND, CMyAPP*, less<HWND>>
>この処理ですが、このmapのなかのless<HWND>という処理は何をしているのか
>わからないのです。
>この処理はHWNDをCMyAPPから参照できるということですよね?

map<HWND, CMyAPP*, less<HWND> > は処理ではありません。型を示そうとしています。


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

このソースが提示されたということは
少なくともC++の知識がある程度ある事が前提になると思うんですが、
提示された人はアマチュアにすらなれない男さんがその知識を持っていると
考えているのではないですか?
もし、あなたがC++言語の知識および、STLの知識を全く、或いはほとんど持っていないの
であれば、
その事を正直に話してそこから教えを請うべきだと思います。
知識が無いのでは、ソースは読めません。
皆さんが言われているように、まずはC++言語とSTLの勉強からはじめた方が良いと思います。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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