• ベストアンサー

この関数はどのプログラミング言語?

_stprintfやTEXTの関数をDirectX SDK などで調べたのですがありませんでした。 今自分はVisual C++ Expressを使ってDirectXの勉強をしています。 できればこの関数の説明ページが書いてあるサイトを教えて下さるとうれしいです。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Y_H_
  • ベストアンサー率42% (14/33)
回答No.1

_stprintfもTEXTもTCHARと同様に,2バイト文字を使うか1バイト文字を使うかをマクロの定義で簡単に切り替えられるようにするためものです. _stprintfはC言語の関数で,TEXTはWINAPIのマクロです. (_stprintfも正確にはマクロで,コンパイル時に1バイトまたは2バイト文字用の関数に置き換えられます) _stprintfは,場合によってはWINAPIのwsprintf関数で置き換えることもできます. 説明は参考URLに乗っています.

参考URL:
http://www.geocities.jp/ky_webid/win32c/006.html,http://wisdom.sakura.ne.jp/system/winapi/win32/win4.html
20081217
質問者

お礼

紹介してくださったサイトでさっそく勉強しています。 ありがとうございます。

その他の回答 (2)

  • Yanch
  • ベストアンサー率50% (114/225)
回答No.3

MSDNライブラリ のリファレンスとか使えると思いますよ。 http://msdn.microsoft.com/ja-jp/library/ybk95axf.aspx

20081217
質問者

お礼

このようなサイトがあったのですね!お気に入りに登録させて貰います!

  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

C/C++のプログラムでは2種類の文字コード系にわけられます 1つはマルチバイト文字コードでもう1つがユニコードです マルチバイトの文字は char型を使いユニコードではワイド文字のwchar_t型を使います。 文字列を扱う関数もマルチバイトでは sprintf( )、ユニコードでは wsprintf( )のように同じ機能でも関数名にwがついて別の関数になります。 Visual C++ではこれらの文字コードの区別をなくした TCHAR型を普通使います。 TCHAR型は_UNICODEを定義するとwchar_tに_MBCSを定義するとcharに自動的に解釈される型です。 TCHAR型に対応する関数としてご質問の _stprintf( )関数があります。 これは_UNICODEが定義されているとwsprintf( )に、_MBCSが定義されているとsprintf( )になる関数です。 そして文字列を扱うマクロとしてTEXTマクロがあります。 TEXT("abc")は_UNICODEが定義されているとワイド文字列の L"abc" に、_MBCSが定義されていると普通の文字列 "abc" に解釈されます。 ということで _stprrintfはsprintfと同じもの、TEXTはただの飾りと考えていいです。

20081217
質問者

お礼

わかりやすい説明をありがとうございます。

関連するQ&A