おすすめ
BookReport

MovieReport

ShowReport

Cook

Travel

NationalPark

Cancun

Casino

Camera

WindowsLiveWriter

LegoMindStormsNXT

LegoEnzoFerrari

WSH

Resume

お願い
Cagylogicサイトの内容に、いかなる保障もいたしません。またアクセスすることによるすべての損害等の責任を負いかねます。ご意見、ご要望、ご質問、不具合(バグ)報告等はコメント欄にてお願いします。リンクはご自由にどうぞ。
月別

« (前の日) 誰でもプログラマ番外編 | メイン | 免責事項 (次の日) »

« トラックバックスパム | 分野 (テクノロジー) | DirectPlay »

2004年2月 5日

DirectX extensions for Visual Studio

DirectX9.0b SDKをインストールすると、Visual Studio 2003 で、DirectX用のサンプルプログラムを生成するアプリケーションウィザードが使えるようになります。
しかし、このDirectX 9 Visual C++ Wizardなんですが、DirectPlayの部分にバグがいます。

ウィザードでDirectPlayを使うようにチェックを入れると、ネットワーク接続に関する設定を行うためのGUIがいろいろ生成されます。
このコードはいいんですが、生成されるリソースに誤りがあります。
というか、リソース、たらへん。

DirectPlayでTCP/IPで接続のコードをいろいろ試してたんです。
C#の方でちゃんと動いてるのに、C++で動けへんからなんでやろうなぁ。って考えてたら、設定する項目がじぇんじぇん足らんことに気がついたんです。
んでソースコードを追うと、、、いろいろDialogから値をとってこようとしてるのですが、そのリソースがあらへん。じぇーんぶ、エラーになってる。

まず、

IID_MULTIPLAYER_CREATE

というダイアログです。
生成されたコードには、
LTEXT "Game Name:",IDC_STATIC
EDITTEXT IDC_EDIT_SESSION_NAME
DEFPUSHBUTTON "OK",IDOK
PUSHBUTTON "Cancel",IDCANCEL
しかありません。(必要な情報以外は消してあります。)
実際には、
EDITTEXT IDC_LOCAL_PORT,ES_NUMBER
LTEXT "Port#:",IDC_LOCAL_PORT_TEXT
CONTROL "Allow Migrate Host",IDC_MIGRATE_HOST,"Button",BS_AUTOCHECKBOX
CONTROL "Use DPNSVR",IDC_USE_DPNSVR,"Button",BS_AUTOCHECKBOX

が足りません。部屋を作るときにTCP/IPなのに、ポート番号聞いてこうへんなぁ。って思ったら、リソースにあらへんもん。でもコードは値を取ろうとしてる。。。

次に

IDD_MULTIPLAYER_ADDRESS DIALOG

このダイアログリソースがすっぽりありません。
コードから想像するに、
IDD_MULTIPLAYER_ADDRESS DIALOG 0, 0, 186, 90
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION |
WS_SYSMENU
CAPTION "MultiPlayer Address"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Host Name",IDC_STATIC,7,7,27,8
EDITTEXT IDC_REMOTE_HOSTNAME,7,17,104,13,ES_AUTOHSCROLL
LTEXT "Port#",IDC_STATIC,7,35,36,8
EDITTEXT IDC_REMOTE_PORT,7,44,104,13,ES_AUTOHSCROLL
DEFPUSHBUTTON "OK",IDOK,25,69,50,14
PUSHBUTTON "Cancel",IDCANCEL,96,69,50,14
END

てなもんがすっぽり抜けております。
部屋に接続するために、部屋を探しに行くのですが、そのダイアログを表示しようとしてエラーになっています。

リソースエディタでちょいちょいと追加すると、

resource.h

に定義されているリソースIDが
ご丁寧に、
netconnectres.h

に定義されているリソースIDと、矛盾が生じますので、ちゃんと一致させましょう。
というか、netconnectres.hにはまだいろいろ定義があるんですけど、まだ足らないリソースがあるっちゅうことですか?

少なくとも上記の項目を追加しないと、TCP/IPでの接続ができません。

上記で完璧かどうか知りません。
C#と見比べてもなんかたらんなぁってかんじでちょいちょいっと追加しただけですから。。。これは僕の自分自身に対するメモですから、参考にする場合は、自己責任でお願いします。

参考までに。。。

他の人ってこの症状出ないのかなぁ。インストールに失敗したのかなぁ?
誰も使ってないのかなぁ。
あくまでもサンプルだから自分で書き直せってことなのかなぁ。。。当然、書き直すことになるけど。。。。

« (前の日) 誰でもプログラマ番外編 | メイン | 免責事項 (次の日) »

« トラックバックスパム | 分野 (テクノロジー) | DirectPlay »

コメントを投稿

« (前の日) 誰でもプログラマ番外編 | メイン | 免責事項 (次の日) »

« トラックバックスパム | 分野 (テクノロジー) | DirectPlay »

2009年1月
Sun Mon Tue Wed Thu Fri Sat
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
 
最近のつぶやき
Powered by