簡単なソケットプログラムを作ろうとしておりまして、サイトで調べたりしておりましたところ、なんとか分かってきたのですが、ひとつどうしてもわからないことがありますので教えていただけますでしょうか。
ソケットから受信するメッセージの生成のところなんですが、
「WSAAsyncSelect(m_socket,m_hWnd,WM_USER_ASYNC_SELECT,FD_READ | FD_WRITE)」
で、2番目の引数「m_hWnd」がわかりません。
教えていただけないでしょうか?よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

こちらの「III.非同期ソケット通信」のところが参考になりませんか?


WSAAsyncSelect()で、例えば受信データありの場合にイベントとして通知する
ウィンドウのハンドルをここに記述しておき、そのウィンドウのイベント
ハンドラで受信処理を行なうようなプログラミングを可能にします。
http://yonex1.cis.ibaraki.ac.jp/~yonekura/2002ka …

参考URL:http://yonex1.cis.ibaraki.ac.jp/~yonekura/2002ka …
    • good
    • 0

・・・あ、なんか、ちがう本書いてもた。


こっちだ。
「インターネットのためのWinsockプログラミング」

参考URL:https://www.amazon.co.jp/exec/obidos/ASIN/477410 …
    • good
    • 0

接続イベント(FD_CONNECT)、受信イベント(FD_READ)、送信イベント(FD_WRITE)、


切断イベント(FD_CLOSE)の発生を伝えるWindowハンドルを指定します。

むか~しこの本を読みました。「WinSockによるWindowsネットワークプログラミング 」

参考URL:http://www.amazon.co.jp/exec/obidos/ASIN/4756116 …
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QE39Aに適合するショックアブソーバ

ご存知の方がいれば、教えてください。
E39A(VR4)のショックアブソーバを社外品に交換しようと考えてます。
候補はカヤバのNEW SR SPECIALを考えています。しかしながら、メーカホームページには90年7月までしか対応できないように記載されており、90年12月登録の私の車には使用できないように見えます。
90年8月以降のE39A(VR4)でNEW SR SPECIALをご利用の方、いらっしゃいませんでしょうか。また、利用可否をご存知の方いらっしゃいませんでしょうか。事情があり、早急に知りたいと考えております。
何卒、ご回答のほどよろしくお願いいたします。

Aベストアンサー

古いGABのカタログで調べたところ(95,97年)、E39AギャランVR4は 87/10~92/3まで同じショックアブソーバーで大丈夫だと思います。

KYBのカタログが無いので、はっきりは分かりませんが、ABSが付いていたら、配線を留めるブラケットが無いのかもしれません。

Qint select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout)について

見当違いな質問かもしれませんがお願いします。

複数のソケットを監視する際にselectを使う場合のことですが、
selectの動作と戻り値について疑問があります。

http://www.linux.or.jp/JM/html/LDP_man-pages/man2/select.2.html
ここを参照すると、selectの戻り値は
「更新された 3 つのディスクリプタ集合に含まれているディスクリプタの数 (つまり、 readfds, writefds, exceptfds 中の 1 になっているビットの総数) を返す。」
とあります。
私の中でselectは登録してあるFDのうち、一つでも動きがあれば即座にselectを抜けるもの、という認識です。
この認識だとreadfds,writefdsが引数として与えられているとしても、
どちらかのfd_setのうち、一つでも動きがあればselect文は
抜けてしまうことになります。とすると、戻り値として
「readfds, writefds, exceptfds 中の 1 になっているビットの総数」
は常に1ということになってしまいます。しかし、総数というからには
複数同時に1になることもあるはずです。

私の認識が間違っているとは思うのですが、どう間違っているのかわかりません。
select文の動きについて詳しく教えていただけないでしょうか。
または良いページがあれば教えてください。

見当違いな質問かもしれませんがお願いします。

複数のソケットを監視する際にselectを使う場合のことですが、
selectの動作と戻り値について疑問があります。

http://www.linux.or.jp/JM/html/LDP_man-pages/man2/select.2.html
ここを参照すると、selectの戻り値は
「更新された 3 つのディスクリプタ集合に含まれているディスクリプタの数 (つまり、 readfds, writefds, exceptfds 中の 1 になっているビットの総数) を返す。」
とあります。
私の中でselectは登録してあるFDのうち、一つでも動きが...続きを読む

Aベストアンサー

>私の中でselectは登録してあるFDのうち、一つでも動きがあれば即座にselectを抜けるもの、という認識です。
この認識はあっています。
しかし、selectを呼び出す以前にOKになっているFDがあれば、それらは全てビットがONになります。

話しを簡単にする為に、受信のみのソケットを3つ作成したとします。
これらの3つのソケットに向けて相手が電文を送ったとします。
その状態でまだ、こちらはselectを呼び出さずにいます。しばらくしてから、selectを呼び出すと、selectは即座にリターンし、3つのビットが一度にONになっているはずです。
一方、相手が、一切電文を送ってない状態で、selectを呼び出した場合は、何れかのビットがONになればリターンするので、そのときは、貴方が想像しているように
ビットの総数は1になる可能性が高いです。
従って、相手が電文を送る前にselectを呼び出すか、送った後にselectを呼び出すかは、その時のタイミングにより異なります。従って、ビット数の総和が常に1であるとは、考えない方が無難です。(1つのソケットしか使用しない場合は別ですが・・・)

>私の中でselectは登録してあるFDのうち、一つでも動きがあれば即座にselectを抜けるもの、という認識です。
この認識はあっています。
しかし、selectを呼び出す以前にOKになっているFDがあれば、それらは全てビットがONになります。

話しを簡単にする為に、受信のみのソケットを3つ作成したとします。
これらの3つのソケットに向けて相手が電文を送ったとします。
その状態でまだ、こちらはselectを呼び出さずにいます。しばらくしてから、selectを呼び出すと、selectは即座にリターンし、3つのビ...続きを読む

QBMW E39

BMW E39

室内にあるOBD2端子の場所ってどこですか?

Aベストアンサー

前期型っすか?後期型っすか?


前期型なら確かボンネットオープンで丸型でおなじみの独自形状の奴で、後期型だったら運転席右側の小物入れの上面、じゃなかったかなぁ。。。左ハンドルだとちょっと分かんねっす。

QhDC=::GetDC(m_hWnd)とhDC=GetDC(m_hWn

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

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

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

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

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

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

Aベストアンサー

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

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

参考URL:http://wisdom.sakura.ne.jp/programming/cpp/cpp7.html

QBMW(E39)足回りダンパーが変??

先日、E39(DT25・525i)の足回りのフラフラについて質問をしたところ、ありがたいアドバイスをいただきE39の530i純正ショック1台分(走行3万キロ)を購入し、今日、箱を空けてダンパーを手で割と強く押してみたら、ぐ~っと下がって、やがてぐ~っと戻ってきました。4本ともです。これってヘタリでしょうか?ちなみにダンパーは純正のザックスで、バンプラバーも割りときれいです。もしかすると急激に力が加わったときにはグッと堅くなる設定かもしれませんが・・・。どなたか教えてください!

Aベストアンサー

それだけでヘタっているとは判断出来ません。普通押し込んだロッドが戻って来るという事は『まだガスが抜けていない』という事ですので判断材料としては『いい方』の材料となります。ショックの抜けは車体に組み込んで実際に走行してみるか専用の計測器を使用して減衰力の測定をしてみないと判断出来ません。まあワタシなら『ショックだけは』中古を買いませんが。

QWM_PAINTとWM_MOVEで同じ事をしたいけど

VC.NETにて、
ウィンドウプロシージャでWM_PAINTとWM_MOVEを拾って、テキストを書き直す関数に飛ばしているのですが、WM_MOVEでは書き直してくれません。
書き直し関数はウインドウの座標の絶対と相対をGetClientRectとGetWindowRectで得て表示をするだけです。
WM_MOVEでも関数に飛んで、座標を得てはいるようですが、表示しなおしてくれません。
ウインドウの大きさを変えると表示し直してくれます。
何故でしょうか?

Aベストアンサー

>hdc = BeginPaint(hWnd, &paint);
と、
>EndPaint(hWnd, &paint);

これはWM_PAINTの中でしか使用できません。

WM_MOVEで描画を行うのでしたらGetDC()、ReleaseDC()を使用してください。

QBMW 5シリーズ(E39)のワイパー

BMW5シリ-ズ(E39)のワイパーですが、右ハンドルなのみワイパーは左ハンドル車と同じに成っていますが、なぜかわかりますでしょうか。

Aベストアンサー

最小限のコストで済ますためにハンドルの位置だけ付け替えているからです。
例えば仮にもう百万円でワイパーも付け替えますといわれてどれだけ買う人が増えるかですよね。

まあ、こういう車に乗っていると海外でレンタカーを借りてもあまり戸惑わず、決して悪いことだけではないと思います。

QWM_SIZEとWM_SIZINGの違い (Win32API)

Windowsプログラミングで、画面のサイズを変更したときに送られてくるメッセージで、
WM_SIZEで処理するのとWM_SIZINGで処理するのとでは何が違うのでしょうか?
WM_SIZEとWM_SIZINGの違いは何なのでしょうか?

また、似たようなものでWM_MOVEとWM_MOVINGの違いも教えてもらいたいです。

Aベストアンサー

実際にプログラムを書いてみれば、両者の違いは明白になるでしょう。

WM_SIZE は「サイズの変更後に」メッセージがアプリケーションに飛んでくるので、
ウィンドウのコーナーからマウスを離した時に文字がビョンと移動します。

Windows98 くらいまではウィンドウのサイズの変更はまずは輪郭だけサイズが変って
マウスをコーナーから離した時にウィンドウの中身が再描画されていたので、
WM_SIZE のメッセージハンドラを実装することになったでしょう。

しかし最近のインターフェイスはサイズ変更中もズリズリとウィンドウの中身が
再描画され続けます。これには WM_SIZING のメッセージハンドラを実装して、
サイズ変更中常に文字列の再描画を繰り返す必要があるでしょう。

QBMW(E39)について

現在、1999年のE39に乗っています。
車に興味を持ち、いろいろな雑誌を読むうちにBMWを
購入しました。しかし興味はあってもなかなかエンジンやサスペンション等のハード的な事やメンテナンスなど理解できず、勉強の日々です。そこでBMW(特にE39)等を初級~中級レベルで扱っているサイトがありましたら教えて頂きたく思います。自分でも調べてみましたが有名なサイトは私にとって上級レベルでした。
あと、もしこの質問にご回答頂けるならば、その方でBMWオーナーであればBMWのどこが一番の魅力かを伺ってみたいです。私はいろんな車に乗ったわけではなく、よく言われているBMWはエンジンフィールが良い、という意見で購入を決めましたが、はっきりと「この感覚が良いと言われるものか」というのが解かりません。
幾つも質問して、わかり難くなりましたが、よろしくお願い致します。

Aベストアンサー

既にご存知のサイトかも知れませんが、、
おたっきーず:http://www.bohp.net/
BMW@FUN:http://www2s.biglobe.ne.jp/~i-zumi/
5シリーズの部屋:
http://www.ipc-tokai.or.jp/~tany/e39index.html

また、輸入車は情報が少ない上、対応するアタッチメント(exオーディオやキーレスアンサーバック等々など)が少なく苦労(苦心)します。そこも面白いところですが、、、。
ベントレーのマニュアルなどもあると心強いです。
こんな物:http://page7.auctions.yahoo.co.jp/jp/auction/g41571466

QSendMessage(hW,WM_CREATE,0,0);を

SendMessage(hW,WM_CREATE,0,0);
を実行するとシステムがWM_DOWNやWM_CHARを発行しなくなるみたいです
というのはそれ以降キー入力を無視するようになるのです
いったんアプリをアイコン化してウィンドウ化するとWM_DOWNやWM_CHARを発行するようになります
WM_CREATEを送ってもWM_DOWNやWM_CHARを発行しなくなるのを阻止するために何か方法はないでしょうか?

Aベストアンサー

>プログラムのイニシャライズのために送ったのですが送らないで住むプログラムに変更しました

普通はそんな方法はとりません。
システムが何をするか分からないからです。

自分でメッセージを定義して、初期化処理を行うようするためのメッセージを送るほうが無難です。
WM_CREATEと同じ処理を初期化処理として行わせたいのであれば、初期化処理を関数化して自分で定義したメッセージでも呼び出せばいいのですし。


>作ったプッシュボタンを押してシステムがWM_COMMANDを送ってきた後キー関係のメッセージを送ってくれなくなります

プッシュボタンがキーボードフォーカスを持ってのるでは?

ボタンがキーボードフォーカスを持っていてもキー関連のメッセージを親ウィンドウが受け取りたいのであれば、サブクラス化をするしかないでしょう。


人気Q&Aランキング

おすすめ情報