• 締切済み

VS2005 UDX

VisualStudio2005を購入し、ゲーム開発に優れていると聞くUDXを使おうと思い、早速セットアップに書いてある説明通りに手を進めました。 しかし何度やってもエラーが多発します。内容は error C2660: 'fopen_s' : 関数に 2 個の引数を指定できません。 error C2664: 'Debug' : 1 番目の引数を 'const char [16]' から 'LPCTSTR' に変換できません。(新しい機能 ; ヘルプを参照) 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 でした。これは一部で、似たようなエラーが数十件もありました。 自身でも何とかしようと思って書き直した場所は #include "stdafx.h" をはじめに追加した所と、古い形式として宣言されました。と言われたので fopenをfopen_sに直した所です。 いろいろと試しましたが、私が手を加えると悪化する一方なのでで質問させていただきました。 こんな私ですが、どなたかVisualStudio2005やUDXに詳しい方がおられましたらよろしくお願い致します。

みんなの回答

  • kabaokaba
  • ベストアンサー率51% (724/1416)
回答No.1

UDXは知りませんが,VS2005は ものすごく型とかもろもろにうるさいです. 例えばVS.NET対応の本に書いてある通りに 入力してもことごとく警告・エラーの嵐です. #主観ではVS2005くらいうるさい方が #よいとは思いますが 個人的にはまった部分は (1) strcpy とかがことごとく「古い形式」だといわれる strcpy_s とかに書き直すのですが, きちんと MSDN なりヘッダなりを見てください. fopen_s も同様です. ばっちり MSDN で検索できます. (2)文字列の扱い char * とか結構引っかかります. UNICODE利用・マルチバイト利用とかで 使う型名とかが違います. プロジェクトのプロパティで確認する必要があって デフォルトでは多分UNICODE利用です. 私は TCHAR.h を読み込んで TEXTマクロとか, もろもろのマクロで処理してます. とくに文字列をことごとく TEXT("...")としておく方がよいようです わかっててTEXTを書かないのはいいんでしょうけども マルチバイト・UNICODEを同じコードで処理させたい ときには書いといたほうがいいかも #Petzoldの「プログラミングWindows」の二章も参照 結局,以下のような感じに,今のところ 私的には落ち着いてます #include <TCHAR.h> TCHAR szHOGE[]=TEXT("ほげほげー"); TCHAR szFUGA[64]; _tcscpy_s(szFUGA,TEXT("ほにゃららー")); //UNICODEのときは wstrcpy_s になる ・・・・などなど

1851Navy
質問者

補足

ありがとうございます。早速調べさせていただきます。 少し前にVS2005で従来のバージョンと同じように扱う為のツールがあると聞きました。 それを使うと関数など古いものが使えるようになるらしいのですが… 本当でしょうか?

関連するQ&A