トップページ⇒tech
1001コメント327KB

【C++】 DirectX初心者質問スレ Part10 【C】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/07/25(火) 21:38:16
※回答する人も、質問する人も必ず読んでください

これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ

【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
 「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。

【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。

前スレ
【C++】 DirectX初心者質問スレ Part9 【C】
http://pc8.2ch.net/test/read.cgi/tech/1144878498/
0153デフォルトの名無しさん2006/08/11(金) 14:13:32
まあこういうアホもいるよ

「インストールとは、ソフトウェアをOSで使用できるように格納することである」


これは明確な無知。
インストールというのは据え置くと言う意味で、
ハードウェアの取り付けにさえインストールと呼ぶ。


無知バカはソフトだけだと思ってる。
0154デフォルトの名無しさん2006/08/11(金) 14:32:54
>>153
そか。よかったな。
0155たまには、釣られてみるか。2006/08/11(金) 16:00:19
>>153
ソフトだけだろ。

ここは日本で、インストールと install は違うということは、
覚えておいたほうがいい。
0156デフォルトの名無しさん2006/08/11(金) 16:12:19
>>155
「インストール」は日本語で
`install'は英語

とでも言いたいのか?
0157デフォルトの名無しさん2006/08/11(金) 16:41:59
漏れの目の前には「演算プロセッサボードインストールマニュアル」なるものがあるのだが。
いつから演算プロセッサボードをソフトウェアと言うようになったんだ?
0158デフォルトの名無しさん2006/08/11(金) 16:43:19
きっと >>153 みたいなアフォが書いたんだよ。(w
0159デフォルトの名無しさん2006/08/11(金) 16:44:18


Xファイル表示どうするんですか?
0160デフォルトの名無しさん2006/08/11(金) 17:48:23
金曜夜9時にチャンネルを10に回せば表示されるよ
0161デフォルトの名無しさん2006/08/11(金) 17:51:15
ソフトだけだと思ってたバカが図星突かれるとこうなるということだよw

無知すぎ
0162釣られすぎですかぁ? (w2006/08/11(金) 18:25:45
http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB

> なお、英語の install は「設置する」「取り付ける」といった意味であり、
> コンピュータやモニタを設置すること、周辺機器を接続すること、拡張カー
> ドを取り付けることなど、ハードウェア全般についても用いるが、日本語で
> はもっぱらソフトウェアを導入する意味にのみ用いる。
0163デフォルトの名無しさん2006/08/11(金) 18:36:43
Wikipediaがどうかしたの?
0164デフォルトの名無しさん2006/08/11(金) 19:13:18
結局ハードも対象なんじゃん(プ
0165デフォルトの名無しさん2006/08/11(金) 19:17:11
ま、これに懲りたらサル未満のバカが人間様に口応えするなんていうバカをやめてもらいたいもんですなw

サル未満の出来損ないはとっとと消えろ(プ
0166デフォルトの名無しさん2006/08/11(金) 19:40:19
>>152
それで問題は出てない?
本当は動くのに単にバージョンチェックで弾いているだけってことでOK?
0167デフォルトの名無しさん2006/08/11(金) 20:48:26
>>163
いや別に、>>153 以外の一般的な意見だなぁと思ってね。

>>164-165 は、「日本語では」と言う意味が理解できていないみたいだけど。(w
0168デフォルトの名無しさん2006/08/11(金) 20:59:15
アパートに住んでいると言ったら、金持ちなんだとわざとらしく驚くような人種なんだろう。
0169デフォルトの名無しさん2006/08/11(金) 21:00:22
アパートに住んでいると言ったら、金持ちなんだとわざとらしく驚くような人種なんだろう。
0170デフォルトの名無しさん2006/08/11(金) 21:12:52
>なお、英語のinstallは「設置する」「取り付ける」といった意味であり、コンピュータやモニタを設置すること、周辺機器を接続すること、拡張カードを取り付けることなど、ハードウェア全般についても用いるが、日本語ではソフトウェアを導入する意味に用いる事が多い。

???
0171デフォルトの名無しさん2006/08/11(金) 21:27:56
>>152
infファイルなんて添付されて無いぞぉおおおおおおおおおお!!!!
0172デフォルトの名無しさん2006/08/11(金) 21:59:27
>>170
インストールの履歴
(最新版) (前の版) 2006年8月11日 (金) 12:12 125.100.229.66 (ノート) (→概要)

これすれ見て慌てて書き換えたんだろ。(w
0173デフォルトの名無しさん2006/08/11(金) 22:53:10
infでなくてなんだっけ

何かあるんだよ
メモ帳で開くといんすころーのれバージョンが書いてあるやつ

0174デフォルトの名無しさん2006/08/11(金) 23:13:27
そう言われてみればいんすころーのれバージョンが書いてあるやつあったな。
なんだっけ?
0175デフォルトの名無しさん2006/08/11(金) 23:29:25
添付されてるサンプルがかなり変わってるな
0176デフォルトの名無しさん2006/08/11(金) 23:46:43
俺の腹のバージョンがボストロールです。
0177デフォルトの名無しさん2006/08/11(金) 23:50:18
>>153より可哀相な子が何人もDirectXに関わってる事に衝撃を受けた
0178デフォルトの名無しさん2006/08/12(土) 00:00:44
>>177
はぁ?何いってんの?可哀想なのはお前だろプゲラwwwwww
0179デフォルトの名無しさん2006/08/12(土) 00:15:36
バージョン書いてるファイルなんてどこにも無かったぜ
dx_setenv.cmdかと思ったら違うっぽいしな
0180デフォルトの名無しさん2006/08/12(土) 00:24:48
>>179
何?君?ワレようと必死なの?
ソフトなんてワレてもどうせ覚えるの面倒で使わないぞw
会社でmax xsi lw maya のライセンスを買ってもらっておきながら
ついに起動するのすら面倒で(ライセンスキー打ってユーザ登録する画面から滅入るw)退職した
俺がいうんだ。間違いないw
0181デフォルトの名無しさん2006/08/12(土) 00:33:59
クビか
0182デフォルトの名無しさん2006/08/12(土) 00:38:14
>>181
いや、普通に激務で嫌になったw
0183デフォルトの名無しさん2006/08/12(土) 07:35:07
LWはハードウェアのドングルじゃないのか?
ほかは知らんがせいぜい一度登録したら終わりだと思うんだが……
毎回入力するなら自動化すればいいのに
0184デフォルトの名無しさん2006/08/12(土) 11:29:27
ニートの不安から精神を病むことは多い。
空想上の激務と空想上の退職を本当の記憶と思いこんでいるのだろう。
0185デフォルトの名無しさん2006/08/12(土) 13:12:13
デスマーチで精神おかしくなった結果
起動するのすら面倒に感じるようになってしまった
と考えればつじつまが合う
0186デフォルトの名無しさん2006/08/12(土) 13:48:27
そういやこの手のツールって全然.NETみないな
0187デフォルトの名無しさん2006/08/12(土) 23:24:52
ドングルころころ
ドングルこー
oh yeah(c'mon baby) にハマってさあ大変
0188デフォルトの名無しさん2006/08/12(土) 23:34:23
↓>>187に対する爆笑レス
0189デフォルトの名無しさん2006/08/12(土) 23:55:53
ドジョウが出てきて、はいどうじょ↓
0190デフォルトの名無しさん2006/08/12(土) 23:57:03
|     ∧_∧
|.     (・ω・` )スルー
|スス… /J   J
↓   ,,, し―-J
0191デフォルトの名無しさん2006/08/13(日) 01:57:27
ティーポットは表示できたんだけど、これをアニメ調(トゥーン)表示にするにはどうすれば良い?
0192デフォルトの名無しさん2006/08/13(日) 02:14:21
シェーダ使いなさいな。
固定機能だけでも、スペキュラを極端な値に設定してやるとかで
ある程度までなら対処できる。
環境マップでも可。
インキング(縁取り)は拡大&反転でイナフだ。
0193デフォルトの名無しさん2006/08/13(日) 03:56:53
Zバッファ有効にしてるから拡大してもう一つ表示しても大差ないってことですか
light.Diffuse.r = 2.5f;
light.Diffuse.g = 2.5f;
light.Diffuse.b = 2.5f;
でちょうど良くなった
0194デフォルトの名無しさん2006/08/13(日) 04:37:29
ウィンドウサイズが1:1のときは普通にxファイルは表示されるのですが、2:1などの1:1じゃないときは拡大縮小されて表示されます。
ウィンドウサイズに関係なくそのまま表示するにはどうしたら良いでしょうか?
0195デフォルトの名無しさん2006/08/13(日) 04:55:22
>>191
固定機能でトゥーンシェーディングやりたいなら、D3DTSS_TEXCOORDINDEXと
D3DTSS_TEXTURETRANSFORMFLAGSを設定してトゥーン用のテクスチャを
セットすれば簡単にできるが、シェーダを使った方が簡単だと思う。
0196デフォルトの名無しさん2006/08/13(日) 05:44:13
xファイルの中に入ってるアニメーションを再生する方法がワケワカメorz
0197デフォルトの名無しさん2006/08/13(日) 06:19:03
>>194
D3DXMatrixPerspectiveFovLH の Aspect を
(float)width / height ね。
0198デフォルトの名無しさん2006/08/13(日) 09:31:15
>>196
TWIN TAIL LOVERS か
ウマイハナシ でググればソースがあるぞ。

SDKよりは判り易いかと
自分は野村XX(ウマイハナシ)さんの奴を、改造しまくって使ってるでよ。
0199デフォルトの名無しさん2006/08/13(日) 13:49:36
DirectSoundBufferのRestoreっていままで気にも留めなかったけど、
使ったことないのに気づいた。これが必要になるようなバッファのロストって本当に起こるの?
0200デフォルトの名無しさん2006/08/13(日) 15:57:31
>199
ハード上に専用メモリを持っているサウンドカードを使っている奴って本当にいるの?
0201デフォルトの名無しさん2006/08/13(日) 21:04:00
DirectShow is no longer recommended for game developmentということらしいですが、
それなら何にすればいいんでしょうか?
0202デフォルトの名無しさん2006/08/13(日) 21:05:31
まんどいから全部メインメモリに置いてる。
どうせストリームがほとんどだから大して使わないし。
0203デフォルトの名無しさん2006/08/14(月) 01:15:11
て
いうかよお------------------------------------------------------------------------------------------


なんでよお-----------------------------------------------------------------------------------------
DXやってる奴というのはよお--------------------------------------------------------------------------

「ファイル」というと「データファイル」
としか思い浮かべられねえんだ?あ?コラ。オウ。

「ファイル」といえば「キーボード」も含むよな?あ?コラ。オウ。
理由は言わんでもわかりますね。
0204デフォルトの名無しさん2006/08/14(月) 01:23:48
>>203
file:///C|/con/con
0205デフォルトの名無しさん2006/08/14(月) 03:24:58
>203
DXってDirectX?で「キーボード」といえば「DirectInputDevice」でウッドボール。
0206デフォルトの名無しさん2006/08/14(月) 22:34:18
>>203
本当に頭のいい人間は誰にでもわかりやすい表現を使う。
君みたいにトリビアに頼らなくても普通のすごいの俺等はw
0207デフォルトの名無しさん2006/08/14(月) 22:44:55
本当に頭のいい人間はとっくに自殺している。
0208デフォルトの名無しさん2006/08/14(月) 23:01:10
>>207
そのネタはやめれw
0209デフォルトの名無しさん2006/08/14(月) 23:32:18
詳しく
0210デフォルトの名無しさん2006/08/15(火) 03:31:54
kwsk
0211デフォルトの名無しさん2006/08/15(火) 07:56:30
なんのお?
0212デフォルトの名無しさん2006/08/15(火) 08:10:26
本当に頭のいい人はとっくに自殺している件。
0213デフォルトの名無しさん2006/08/15(火) 11:50:40
XNAハジマタ\(^o^)/~
0214デフォルトの名無しさん2006/08/15(火) 19:24:36
DirectXをダウンロードしようと思っているのですが
http://www.microsoft.com/japan/msdn/directx/downloads.aspxのどれ
をダウンロードすればいいですか?DirectX 9.0 SDK Update (June 2006)を
ダウンロードしましたが正しく起動しませんでした
ちなみに私のPCはWindows98です
0215デフォルトの名無しさん2006/08/15(火) 19:28:32
>>214
http://www.microsoft.com/downloads/details.aspx?familyid=b7bc31fa-2df1-44fd-95a4-c2555446aed4&displaylang=en
0216デフォルトの名無しさん2006/08/15(火) 19:28:41
まずはOSをXPに入れ替えるところから始めろ。
0217デフォルトの名無しさん2006/08/15(火) 19:51:27
>>215
ありがとうございました
>>216
それがベストなんですが諸事情がありますて
0218デフォルトの名無しさん2006/08/15(火) 20:03:21
金がない学生とか、よく古い環境でなんとかしようと四苦八苦してるけど、
その時間をバイトして金を貯めた方が早くないの?
0219デフォルトの名無しさん2006/08/15(火) 20:05:52
どうでもいい
0220デフォルトの名無しさん2006/08/15(火) 20:12:55
どうせ新しい環境で四苦八苦することになる。
0221デフォルトの名無しさん2006/08/15(火) 23:46:21
//--------------------------------------------------------------------------------------
// File: DXUT.h
//
// DirectX SDK Direct3D sample framework
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//--------------------------------------------------------------------------------------
#pragma once
#ifndef DXUT_H
#define DXUT_H

#ifndef UNICODE
#error "The sample framework requires a Unicode build. If you are using Microsoft Visual C++ .NET, under the General tab of the project properties change the Character Set to 'Use Unicode Character Set'."
#endif


DXUT.hをインクルードしてコンパイルすると、13行目の「#error "The 〜Set'."」でerror C1189が出るんだが、どうにかならない?
正直なんでここでエラーが出るか分からないorz
0222デフォルトの名無しさん2006/08/15(火) 23:51:37
ヒント:エキサイト翻訳
0223デフォルトの名無しさん2006/08/15(火) 23:52:13
ユニコードが必要って書いてあるままじゃん
0224デフォルトの名無しさん2006/08/15(火) 23:52:22
ちなみに、
The sample framework requires a Unicode build. If you are using Microsoft Visual C++ .NET, under the General tab of the project properties change the Character Set to 'Use Unicode Character Set
この通りにUnicodeセットでプロジェクトを変更すると、鬼のごとく参照エラーが・・・鬱だしのう
0225デフォルトの名無しさん2006/08/15(火) 23:53:39
そっちのエアーを晒せ。
0226デフォルトの名無しさん2006/08/15(火) 23:54:09
エラーだorz
0227デフォルトの名無しさん2006/08/15(火) 23:56:22
解決したいものを解決したい粒度で情報開示せよ
0228デフォルトの名無しさん2006/08/15(火) 23:56:51
もう解決したから
0229デフォルトの名無しさん2006/08/15(火) 23:57:23
>>228
そう。
0230デフォルトの名無しさん2006/08/16(水) 00:00:52
main.cpp
error C2440: '初期化中' : 'const char [13]' から 'LPCWSTR' に変換できません。
指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。
error C2664: 'CreateWindowExW' : 2 番目の引数を 'const char [13]' から 'LPCWSTR' に変換できません。
指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。
error C2664: 'UnregisterClassW' : 1 番目の引数を 'const char [13]' から 'LPCWSTR' に変換できません。
指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。
0231デフォルトの名無しさん2006/08/16(水) 00:01:41
CDirectX9.cpp
CD3DXObject.cpp
error C2259: 'CAllocateHierarchy' : 抽象クラスをインスタンス化できません。
次のメンバが原因です :
'HRESULT ID3DXAllocateHierarchy::CreateFrame(LPCSTR,LPD3DXFRAME * )' : 純粋仮想関数は定義されていません。
d:\Program Files\Microsoft DirectX 9.0 SDK (October 2004)\Include\d3dx9anim.h(134) : 'ID3DXAllocateHierarchy::CreateFrame' の宣言を確認してください。
'HRESULT ID3DXAllocateHierarchy::CreateMeshContainer(LPCSTR,const D3DXMESHDATA *,const D3DXMATERIAL *,const D3DXEFFECTINSTANCE *,DWORD,const DWORD *,LPD3DXSKININFO,LPD3DXMESHCONTAINER * )' : 純粋仮想関数は定義されていません。
d:\Program Files\Microsoft DirectX 9.0 SDK (October 2004)\Include\d3dx9anim.h(168) : 'ID3DXAllocateHierarchy::CreateMeshContainer' の宣言を確認してください。
error C2664: 'D3DXLoadMeshHierarchyFromXW' : 1 番目の引数を 'char *' から 'LPCWSTR' に変換できません。
指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。
error C2039: 'GetMaxNumMatrices' : 'ID3DXAnimationController' のメンバではありません。
d:\Program Files\Microsoft DirectX 9.0 SDK (October 2004)\Include\d3dx9anim.h(687) : 'ID3DXAnimationController' の宣言を確認してください。
error C3861: 'SAFE_RELEASE': 識別子は、引数依存の照合を使用しても見つかりません。
0232デフォルトの名無しさん2006/08/16(水) 00:02:13
error C3861: 'SAFE_RELEASE': 識別子は、引数依存の照合を使用しても見つかりません。
error C2440: '初期化中' : 'int' から 'D3DXPRIORITY_TYPE' に変換できません。
列挙型への変換には static_cast、C スタイル キャストまたは関数スタイル キャストが必要です。
error C2259: 'CAllocateHierarchy' : 抽象クラスをインスタンス化できません。
次のメンバが原因です :
'HRESULT ID3DXAllocateHierarchy::CreateFrame(LPCSTR,LPD3DXFRAME * )' : 純粋仮想関数は定義されていません。
d:\Program Files\Microsoft DirectX 9.0 SDK (October 2004)\Include\d3dx9anim.h(134) : 'ID3DXAllocateHierarchy::CreateFrame' の宣言を確認してください。
'HRESULT ID3DXAllocateHierarchy::CreateMeshContainer(LPCSTR,const D3DXMESHDATA *,const D3DXMATERIAL *,const D3DXEFFECTINSTANCE *,DWORD,const DWORD *,LPD3DXSKININFO,LPD3DXMESHCONTAINER * )' : 純粋仮想関数は定義されていません。
d:\Program Files\Microsoft DirectX 9.0 SDK (October 2004)\Include\d3dx9anim.h(168) : 'ID3DXAllocateHierarchy::CreateMeshContainer' の宣言を確認してください。
error C3861: 'SAFE_DELETE_ARRAY': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_RELEASE': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_RELEASE': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_RELEASE': 識別子は、引数依存の照合を使用しても見つかりません。
error C2039: 'SetTime' : 'ID3DXAnimationController' のメンバではありません。
d:\Program Files\Microsoft DirectX 9.0 SDK (October 2004)\Include\d3dx9anim.h(687) : 'ID3DXAnimationController' の宣言を確認してください。
0233デフォルトの名無しさん2006/08/16(水) 00:02:47
CD3DXMesh.cpp
error C3861: 'SAFE_DELETE': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_RELEASE': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_DELETE_ARRAY': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_DELETE': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_DELETE_ARRAY': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_RELEASE': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_RELEASE': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_DELETE_ARRAY': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_RELEASE': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_DELETE_ARRAY': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_RELEASE': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_DELETE_ARRAY': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_DELETE_ARRAY': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_DELETE': 識別子は、引数依存の照合を使用しても見つかりません。
error C2440: '=' : 'TCHAR *' から 'LPSTR' に変換できません。
指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。
0234デフォルトの名無しさん2006/08/16(水) 00:03:21
CD3DXFrame.cpp
error C3861: 'SAFE_DELETE': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_DELETE': 識別子は、引数依存の照合を使用しても見つかりません。
error C2440: '=' : 'TCHAR *' から 'LPSTR' に変換できません。
指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。
CAllocateHierarchy.cpp
error C2664: 'D3DXCreateTextureFromFileW' : 2 番目の引数を 'LPSTR' から 'LPCWSTR' に変換できません。
指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。
error C3861: 'SAFE_RELEASE': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_DELETE': 識別子は、引数依存の照合を使用しても見つかりません。
error C3861: 'SAFE_DELETE': 識別子は、引数依存の照合を使用しても見つかりません。
0235デフォルトの名無しさん2006/08/16(水) 00:09:46
逆切れと受け取ってもよさそうな長さです
0236デフォルトの名無しさん2006/08/16(水) 00:13:12
ゴメス
http://www.nomuraz.com/denpa/prog004.htm#IDPROG0021
ここのサンプルを試したらこうなった・・・
車輪の再発明してくるorz
0237デフォルトの名無しさん2006/08/16(水) 02:35:10
>>197
ありがとうございました!!
0238デフォルトの名無しさん2006/08/16(水) 14:49:06
[June 2005]から[August 2006:に変えてから
>error C2660: 'ID3DXFont::DrawTextA' : 関数に 5 個の引数を指定できません。
のエラーが出るようになりました。

LPD3DXFONT pFont;
RECT rect={iX,iY,iX+1000,iY+100};
pFont->DrawText(szStr,-1,&rect,DT_LEFT | DT_BOTTOM | DT_SINGLELINE | DT_NOCLIP,0xffffffff);

この3行目でエラーが出ます。
検索してもDrawText(A/W)の引数は5個書かれているものしかありません。
この引数をはどう変えれば良いのでしょうか?
0239デフォルトの名無しさん2006/08/16(水) 15:19:08
仕様がころころかわす糞APIなので、使わないのがベストな解決方法。
自分で簡単に作れる部分なので、使うメリットは微塵もない。
0240デフォルトの名無しさん2006/08/16(水) 16:10:59
m_pFont->DrawText( NULL, szStr, -1, &rect, DT_LEFT | (略), 0xffffffff );
0241デフォルトの名無しさん2006/08/16(水) 16:34:47
ドキュメント出てないの?
02422382006/08/16(水) 17:14:55
レスありがとうございます。
>>240のやり方で問題は解決されました。

ヘルプやMSDNを検索してみたのですがこの関数だけ古いものしか出てきませんでした。
0243デフォルトの名無しさん2006/08/16(水) 18:29:35
DIERR_INPUTLOSTsDIERR_NOTACQUIREDfuit@at@4k?
0244デフォルトの名無しさん2006/08/16(水) 22:37:50
質問です。

class Graphics {
public:
Graphics(); {}
Graphics(HWND hWnd) {
Initialize(hWnd);
}
void Initialize(HWND hWnd) {
this->hWnd = hWnd;
後はttp://rina.jpn.ph/~rance/directx8/02/05.htmlの
『2.IDirect3D8インターフェイスの取得』と、
『3.IDirect3DDevice8インターフェイスの作成』の
『ウィンドウモード・アプリケーションのデバイス作成例』と似たり寄ったり
(pD3Dなどがメンバである点と、CreateDeviceの返り値を調べ、
失敗ならメッセージボックスを出すようにしてある点で異なる)
}
(省略)
private:
HWND hWnd;
LPDIRECT3D9 pD3D;
D3DPRESENT_PARAMETERS d3dpp;
LPDIRECT3DDEVICE9 pD3DDevice;
(省略)
};

>>245に続く…
0245デフォルトの名無しさん2006/08/16(水) 22:38:52
>>244のようなクラスを作って
Graphics graphics;
graphics.Initialize(hWnd);
とするとメッセージボックスは表示されず、描画も問題なく行うことができるのですが、
Graphics* graphics;
graphics = new Graphics(hWnd);
とするとメッセージボックスが出てきてしまい、
無視して描画を行おうとするとメモリ参照エラーが出てしまいます。
両者の違いは何なのでしょうか?
0246デフォルトの名無しさん2006/08/16(水) 23:26:18
回答じゃなくてすまんが、クラスのhWndと引数のhWndみたいに同じ変数名で共存できるのか
0247デフォルトの名無しさん2006/08/16(水) 23:51:48
this->hWnd = hWnd;
こうなってりゃ平気。
0248デフォルトの名無しさん2006/08/17(木) 00:06:14
DIERR_INPUTLOSTとDIERR_NOTACQUIREDはどこがちがうですか?
0249デフォルトの名無しさん2006/08/17(木) 00:22:38
D3DERR_DEVICELOSTとD3DERR_DEVICENOTRESETと同じ
0250デフォルトの名無しさん2006/08/17(木) 04:46:08
> とするとメッセージボックスが出てきてしまい、

なんで、どんなメッセージかぐらい書かないんだろうか…
02512442006/08/17(木) 04:57:34
>>250
メッセージボックスはエラーが起こったことを知らせるために
自分で呼び出しているものなので、メッセージに意味はありません。
if(FAILED(pD3D->CreateDevice(〜))) {
MessageBox(〜);
}
みたいな感じです。
0252デフォルトの名無しさん2006/08/17(木) 06:07:26
自己解決しました。

HRESULTが単なるbool値モドキではなく、
失敗の原因毎に返す値が違うということを>>248-249のおかげで思い出す。
↓
メッセージボックスにHRESULTの値を表示させて
原因を特定するべきだと>>250のおかげで気づく。
↓
D3DERR_INVALIDCALLが返されていることが判明。
メソッドのパラメータに無効な値が設定されているかもしれない。
引数のウィンドウハンドルかD3DPRESENT_PARAMETERS構造体が怪しい。
↓
D3DPRESENT_PARAMETERS構造体を
ZeroMemoryでクリアするのを忘れていたことに気づくorz

単純ミスですみません。皆さんに感謝します。
これは、単にインスタンスを宣言するのとnewによる動的生成を行うのでは
メンバ変数の初期化のされ方が異なるということですかね?
この辺りに詳しい方は是非教えてください。
■ このスレッドは過去ログ倉庫に格納されています