HRESULT hr;
if( FAILED( hr = CMyD3DApplication::FrameMove(fElapsedTime))) return hr;
D3DXMATRIX matWorld;
D3DXMATRIX matRotY;
D3DXMATRIX matRotX;
m_DInput.JoyUpdate();
if(m_DInput.UP()) matRotX += fElapsedTime * 0.5f;
D3DXMatrixRotationX( &matRotX, m_fWorldRotX );
D3DXMatrixRotationY( &matRotY, m_fWorldRotY );
D3DXMatrixMultiply( &matWorld, &matRotX, &matRotY );
m_pd3dDevice->SetTransform( D3DTS_WORLD, &matWorld );
リファレンスを参考に3Dを動かすコードを打ちましが、
最後次のエラーがなかなか取れません。
構文もミスはないし、あちこちを調べましたが原因が分かりません。
どうか対処方法をおしえてください。
問題のコンパイルエラー
error C2679: 二項演算子 '+=' : 型 'float' の右オペランドを扱う演算子が見つかりません (または変換できません)。
No.1ベストアンサー
- 回答日時:
まず、VCのエラーコードは「C2679」をMSDNで検索すると説明が出ます。
マニュアルは読んでください。
で、読んで説明のとおり。
> matRotX += fElapsedTime * 0.5f;
'+=' 演算子の右側が 'float' 型じゃだめだよ、と怒られてます。
数学の式を書いてるわけでなし、人間に意味が通っても、型がちゃんと合わないとコンパイラは怒ります。
matRotXの型であるD3DXMATRIXをよく調べてください。
DirectXのマニュアルは手元にありますね?どんな演算子がありますか?
operator +=(float)という関数はありませんね。
そしてfloatに暗黙で変換できるD3DXMATRIXのコンストラクタもありませんね?
[修正方法]以下のどちらか(お好みで。
● +=を使いたいなら、operator += 関数の引数に合う変数を使う。
● そこにこだわらないならfloatを受け入れる別の演算子を使う。
いつもご丁寧にありがとうございます。
両方のオペランドを同じ型(float型に変更)に変更したら解決しました。
くだらない質問を出すなと思うかもしれませんが、
私質問の仕方やすぐパニクル性格で、周りにCを知る人がリアルではいません。
今後Cの勉強は精一杯しますが、いざのときはまた助けてくださるととても安心します。
また、なにとぞよろしくおねがします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) C3とC4のセルに、Visual basicで実行した時入力した値をC3に表示させ、その後に、C3に 1 2023/07/14 09:43
- Excel(エクセル) Formulaプロパティーを使ってセルに数式を組んだのですが簡潔にしたい。 3 2022/08/21 20:51
- Excel(エクセル) エクセルのオートフィルについて質問があります。 2 2022/04/08 22:31
- Excel(エクセル) [オートフィルター]機能について 3 2023/02/04 14:32
- その他(Microsoft Office) エクセルのマクロでスライサー教えてください。 1 2022/09/28 16:40
- Excel(エクセル) エクセル2019の関数を教えてください。 8 2022/12/16 12:45
- Excel(エクセル) ログインIDの一発入力? 5 2023/07/07 12:30
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- フリーソフト パソコンで、フォルダの最下層を探索してフォルダ名に連番を挿入するアプリを探しています。 例: アルフ 2 2023/06/09 22:04
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「彡」って文字はなんという文...
-
セル内の文字列が日本語か英語...
-
EBCDIC⇒SJIS変換の方法
-
Excelマクロにて30分単位の計算...
-
CString ←→ BSTRの変換について
-
友人とのラインで 「~MBと書く...
-
sedで日本語の置換方法について
-
英数字を含む文字列(0-9,A-Z)...
-
DOUBLE型の16進HEX文字列変換に...
-
C言語でUTF-8コードで読み込ん...
-
PL/SQLでSJISの文字コードを取...
-
%fと%gについて
-
10進数→2進数への変換
-
COBOLによる全角・半角混...
-
ビット反転(Not)が機能しない
-
フォームのコントロールのバッ...
-
std::stringからLPCWSTR型への変換
-
VisualBasic6からVB2005に移行...
-
VB.NETのコンソールアプリケー...
-
JISコードにエンコードすると、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EBCDIC⇒SJIS変換の方法
-
セル内の文字列が日本語か英語...
-
「彡」って文字はなんという文...
-
std::stringからLPCWSTR型への変換
-
VS 2008(VB.NET)
-
ExcelVBA実行後に時々落ちる
-
ふりがなをアルファベット化す...
-
Excelマクロにて30分単位の計算...
-
Symfowareでのデータ型変換につ...
-
英数字を含む文字列(0-9,A-Z)...
-
JIS → S-JIS コード変換するには
-
sedで日本語の置換方法について
-
COBOLによる全角・半角混...
-
フォームのコントロールのバッ...
-
数字5桁文字コード?
-
バイナリデータ→ASCII 変換プ...
-
2バイト文字をJEFからSJISに変...
-
VBScript ASC関数:文字エンコ...
-
CString ←→ BSTRの変換について
-
入力した文字を全て自動で全角...
おすすめ情報