たまに、
  lstrcpy( ... , _T("abcdef") );
こんな感じで _T が、ついているのがあるのですが、これはいったいなんですか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

 結論から言えば「ソースコードをいっさい修正せずにUnicode対応をするためのマクロ」です。



 lstrcpy()の第2引数の型は、char*ではなく「LPCTSTR」型になってますよね。_T()は、文字列をchar*型ではなくLPTSTR型にするマクロです。(LPCTSTRはconstなLPTSTR)

 では、LPTSTRとは何か。これはTCHAR型へのポインタです。ではTCHARは何か。

 TCHARは次のように定義されています。

#ifdef _UNICODE
typedef wchar_t TCHAR;
#else
typedef char TCHAR;
#endif

つまり、マクロ定数「_UNICODE」が定義されていればTCHARの正体はwchar_t、そうでなければcharになります。

 char型に日本語文字を入れたとき、ご存知のようにシフトJISコードにされて入ります。一方、wchar_tに入れたときにはUnicodeで入ります。

 最近のWindowsソフトは国際化のために、内部文字コードにUnicodeを使うことが多くなっています。いまはシフトJISを使っているソフトでも、将来はUnicodeに移行することが見込まれます。

 しかしUnicodeに移行するときに、ソースをいちいち修正していては大変です。そこで、文字列はあらかじめ_T()で囲っておくのです。

 コンパイルオプション「/D "_UNICODE"」でマクロ定数を立てて再コンパイルしてやれば、即、Unicodeへの移行が完了するというわけです。
    • good
    • 0
この回答へのお礼

ありがとうございます。詳しく説明してくれて、とても勉強になりました。

お礼日時:2001/04/14 23:13

Unicodeってわかりますか?



大雑把に言うと、_Tマクロは、Unicodeを使うかどうかを
あまり気にしなくて良くなるおまじないです。

もし、_Tマクロを使わない場合には、文字列をいちいち
L"abcdef" と書かなくてはいけません。

でも、そう書いちゃうと、Unicodeを使わない指定で
コンパイルすると、エラーになっちゃうんです。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2001/04/14 23:16

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q※Tバックが好きな男性にお聞きします!

女性用ショーツでノーマルタイプではなく、Tバックがありますが……
もちろん苦手な男性もいるかと思いますが、

※Tバックが好きな男性にお聞きします!

・何色のTバックが好きですか?
・また、何色のTバックが嫌いかもできれば教えてください。

私は女ですが、黒いシンプルなTバックはセクシーだなと思いますが、
赤いTバックだけはほんとに受け付けません。どんな美人が履いてもふんどしに見えてきます。
こういう感じで、何色のTバックが好きか・・・ Tバックが好きな男性、是非教えてください。

Aベストアンサー

ピンク、水色、白が好き、紫、肌色、グレー、茶は好かない。

Q【C++ TR1】tr1::tupleのコンストラクタについて

 こんばんは。今回初めて此方のカテゴリに質問させて頂きます。
 今暇つぶしにtr1::tuple<T1, T2, ..., TN>の中を書いています。

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf

--------------------------------------------------------------
pdfの[6.1.3]より(少し省略しています)
--------------------------------------------------------------
template<T1, T2, ..., TN>
class tuple
{
public:

↓このコンストラクタのP1~PNが、どの様な型に成るのかが不明瞭です。
explicit tuple(P1, P2, ..., PN);

--------------------------------------------------------------

pdfの[6.1.3.1]辺りにP1~PNの事について、書いてはあるのですが・・・今一掴めません。

例えば、

tr1::tuple<char, int, const char(&)[3]>

と書いた場合、コンストラクタのP1, P2, P3はどう言う型になるのでしょうか。
テンプレートメタプログラムが解る方、ご教示お願いします。

 こんばんは。今回初めて此方のカテゴリに質問させて頂きます。
 今暇つぶしにtr1::tuple<T1, T2, ..., TN>の中を書いています。

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf

--------------------------------------------------------------
pdfの[6.1.3]より(少し省略しています)
--------------------------------------------------------------
template<T1, T2, ..., TN>
class tuple
{
public:

↓このコンストラクタのP1~PNが、どの様な型に成るのかが不明瞭...続きを読む

Aベストアンサー

> where Pi is Ti if Ti is a reference type, or const Ti& otherwise.

なので、

tr1::tuple<char, int, const char(&)[3]>

の仮引数の型は、

const char&, const int&, const char(&)[3]

ではないでしょうか?

QTバックを履くとき…

タイトスカートを履くときにTバックを履こうと思ってTバックを購入したのですが

私が持ってるタイトスカートはミニスカなため、
いざTバックを履いて外出しようと思ったらなんか急に
え!?ミニスカでTバックってなんか不安!!
と思いました。

ミニスカでTバックのとき皆さんどうされてますか?

ちなみにニーハイソックスをよく履くのでストッキングは履かないのですが、そうなるとTバック一枚履いて、そのあとスカートを履くつもりだったのですが・・・本来これでよいのでしょうか?(^^;)

Aベストアンサー

膝上10cm位なら、よほど覗きこんだりしなければ大丈夫だと思いますよ。
しかしながら、最近は盗撮する様な輩が増え手口も巧妙になってきてますので、鞄を後ろ手に持つ等、注意を怠らない様にされた方がいいと思いますよ。
私の持論ですが…女性は見られる事で美しくなるといいますが、ミニスカートの中にTバックを穿く事で、常に緊張感を保ち続ける事で、いつも美しくあろうと努力する様になるのではないでしょうか?
そういう意味では、ミニスカにTバックというのは女性にとってもいい刺激になるんじゃないでしょうか。

QSendMessage(hW,WM_CREATE,0,0);を

SendMessage(hW,WM_CREATE,0,0);
を実行するとシステムがWM_DOWNやWM_CHARを発行しなくなるみたいです
というのはそれ以降キー入力を無視するようになるのです
いったんアプリをアイコン化してウィンドウ化するとWM_DOWNやWM_CHARを発行するようになります
WM_CREATEを送ってもWM_DOWNやWM_CHARを発行しなくなるのを阻止するために何か方法はないでしょうか?

Aベストアンサー

>プログラムのイニシャライズのために送ったのですが送らないで住むプログラムに変更しました

普通はそんな方法はとりません。
システムが何をするか分からないからです。

自分でメッセージを定義して、初期化処理を行うようするためのメッセージを送るほうが無難です。
WM_CREATEと同じ処理を初期化処理として行わせたいのであれば、初期化処理を関数化して自分で定義したメッセージでも呼び出せばいいのですし。


>作ったプッシュボタンを押してシステムがWM_COMMANDを送ってきた後キー関係のメッセージを送ってくれなくなります

プッシュボタンがキーボードフォーカスを持ってのるでは?

ボタンがキーボードフォーカスを持っていてもキー関連のメッセージを親ウィンドウが受け取りたいのであれば、サブクラス化をするしかないでしょう。

Q見せTバック、ブラの女性の心理は?

 よく見せTバックをはいている人を見かけます。股上の浅いジーンズからTバックがみえると言う事です。しかし、そもそもTバックとは、下着のラインが見えないように履くためだったのでは?ブラなんかは、水着みたいな感じを受けますが、見せTバックには驚きます。
 見せTバックを履いて町に出てみようという女性心理について教えてください。リゾート地ではありませんからね。

Aベストアンサー

「アウターランジェリー」というお洒落な単語がファッションに詳しい人の間では使われています。見せてもいい、デニム地のブラとか、ブラ付きのキャミソールなどです。私自身数年前までは20代だったのでそれらをよく着用しましたが、私はお洒落のつもりでも、男性には誤解されがちでした。「男を誘ってる、自分を誘っている」って。でも、そんなつもりないんですけれどね。

ローライズのジーンズ、私は穿きません。だって、それ用のパンティーでもどうしても、しゃがむと見えてしまうからです。不特定多数の方を不快にさせてまで、流行を追いたくありません。見せTバックの存在は今日初めて知りました。だいたいTバックははいてて気持ちの悪い下着で私は処分しました。股に当たる部分に布がなく、ひも状になったTバックが局所に食い込み痛いし、おりものを受け止めてくれないので、ボトムス、特にジーンズを汚します。

ローライズが穿きたいなら、いっそのことノーパンでおりものシートをジーンズの局所が当たる部分に貼り付ければいいのではないかと思います。

見せTバックの女性はきっとアウターランジェリー感覚なんだと思います。男性の目を意識してどうとかはないでしょう。

「アウターランジェリー」というお洒落な単語がファッションに詳しい人の間では使われています。見せてもいい、デニム地のブラとか、ブラ付きのキャミソールなどです。私自身数年前までは20代だったのでそれらをよく着用しましたが、私はお洒落のつもりでも、男性には誤解されがちでした。「男を誘ってる、自分を誘っている」って。でも、そんなつもりないんですけれどね。

ローライズのジーンズ、私は穿きません。だって、それ用のパンティーでもどうしても、しゃがむと見えてしまうからです。不特定多数の...続きを読む

Qint select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout)について

見当違いな質問かもしれませんがお願いします。

複数のソケットを監視する際にselectを使う場合のことですが、
selectの動作と戻り値について疑問があります。

http://www.linux.or.jp/JM/html/LDP_man-pages/man2/select.2.html
ここを参照すると、selectの戻り値は
「更新された 3 つのディスクリプタ集合に含まれているディスクリプタの数 (つまり、 readfds, writefds, exceptfds 中の 1 になっているビットの総数) を返す。」
とあります。
私の中でselectは登録してあるFDのうち、一つでも動きがあれば即座にselectを抜けるもの、という認識です。
この認識だとreadfds,writefdsが引数として与えられているとしても、
どちらかのfd_setのうち、一つでも動きがあればselect文は
抜けてしまうことになります。とすると、戻り値として
「readfds, writefds, exceptfds 中の 1 になっているビットの総数」
は常に1ということになってしまいます。しかし、総数というからには
複数同時に1になることもあるはずです。

私の認識が間違っているとは思うのですが、どう間違っているのかわかりません。
select文の動きについて詳しく教えていただけないでしょうか。
または良いページがあれば教えてください。

見当違いな質問かもしれませんがお願いします。

複数のソケットを監視する際にselectを使う場合のことですが、
selectの動作と戻り値について疑問があります。

http://www.linux.or.jp/JM/html/LDP_man-pages/man2/select.2.html
ここを参照すると、selectの戻り値は
「更新された 3 つのディスクリプタ集合に含まれているディスクリプタの数 (つまり、 readfds, writefds, exceptfds 中の 1 になっているビットの総数) を返す。」
とあります。
私の中でselectは登録してあるFDのうち、一つでも動きが...続きを読む

Aベストアンサー

>私の中でselectは登録してあるFDのうち、一つでも動きがあれば即座にselectを抜けるもの、という認識です。
この認識はあっています。
しかし、selectを呼び出す以前にOKになっているFDがあれば、それらは全てビットがONになります。

話しを簡単にする為に、受信のみのソケットを3つ作成したとします。
これらの3つのソケットに向けて相手が電文を送ったとします。
その状態でまだ、こちらはselectを呼び出さずにいます。しばらくしてから、selectを呼び出すと、selectは即座にリターンし、3つのビットが一度にONになっているはずです。
一方、相手が、一切電文を送ってない状態で、selectを呼び出した場合は、何れかのビットがONになればリターンするので、そのときは、貴方が想像しているように
ビットの総数は1になる可能性が高いです。
従って、相手が電文を送る前にselectを呼び出すか、送った後にselectを呼び出すかは、その時のタイミングにより異なります。従って、ビット数の総和が常に1であるとは、考えない方が無難です。(1つのソケットしか使用しない場合は別ですが・・・)

>私の中でselectは登録してあるFDのうち、一つでも動きがあれば即座にselectを抜けるもの、という認識です。
この認識はあっています。
しかし、selectを呼び出す以前にOKになっているFDがあれば、それらは全てビットがONになります。

話しを簡単にする為に、受信のみのソケットを3つ作成したとします。
これらの3つのソケットに向けて相手が電文を送ったとします。
その状態でまだ、こちらはselectを呼び出さずにいます。しばらくしてから、selectを呼び出すと、selectは即座にリターンし、3つのビ...続きを読む

QTバック好きの男性に質問です

Tバックって、そんなに魅力的ですか?
普通のショーツとTバックでは、興奮の度合いに何か違いがあるんでしょうか?

私は、下着のラインが出そうな服装の時にTバックを履きます。
なので、毎回セックスの度にTバックを履くわけではありません。
たまにしか履かないんですが、その「たまに」の日に彼氏とセックスする時は、彼氏は喜んでます(笑)
でも、結局脱ぐのであまり関係なさそうですが・・・。

Tバックが好きな男性は、結構多いですよね。
Tバックを履く側の私にとっては、下着のラインが響かないメリットが嬉しいけど、性的?魅力については正直あまり良く分かりません。
以前からちょっと気になってたので質問しました。
よろしくお願いします。

Aベストアンサー

(1)珍しいから
毎回、Tバックだと飽きます。
たまに見るから興奮するのです。

(2)露出度のバランス
お尻が思いきり露出しているのに、陰部が微妙に隠されている、
絶妙のバランスが、そそられます。

(3)妄想
小さなパンティを履いている女は、Hを欲しているという男の勝手な妄想

 脱がせる喜びもあるんです。
 私は、たまに脱がせず、横にずらして挿入しちゃいます

Qstdint.hのint8_tとuint8_tについて

stdint.hのint8_tとuint8_tの
値のとりうる範囲は下記で合っていますでしょうか?

・int8_t
  -128~127

・uint8_t
  0~255

「int8_tは最上位ビットが符号ビットで使われ、
uint8_tは最上位から最下位ビットまで全てを、
値を表現するために使える。」
という考えです。

Aベストアンサー

正しいです。
int8_tはパディングビットが無く2の補数表現である8ビット幅の符号付き整数型のtypedefですから。
# ISO/IEC 9899:1999 7.18.1.1の第1段落


最小値,最大値は,マクロ
INT8_MIN, INT8_MAX, UINT8_MAX
というものがstdint.hのインクルードで定義されます。
# ISO/IEC 9899:1999 7.18.2.1

なので,limits.hのINT_MAXのようなマクロを使いたい場合,上記を使うことができます。
# 当然,INT16_MINやINT32_MAX,UINT64_MAXも,(対応する型があれば) 定義されます。

QはじめてTバックショーツを履いたとき

Tバックショーツを普段から履いてる方、一度でも履いたことがある方にお伺いします。
はじめてTバックショーツを履いたのはいつぐらいの時で、そのときの感想はどうでしたか?
また、Tバックショーツを履いてるのを家族や同僚、彼氏に気付かれた時、反応はどうでしたか?
今度、Tバックショーツを履いてみたいと思っているので参考にさせてください。

Aベストアンサー

こんにちは。
Tバックは普段から履いてます。
私は今20代半ばですが、5~6年位前から履き始めました。
きっかけはジーンズやピッタリしたボトムを履くときに下着の線が出るのが嫌だったのと、3枚千円で売ってたので、試しに買ってみたことです。
最初は食い込むのが変な感じでしたが、もう全然気になりません。普通の下着と同じ感覚です。
家族や彼氏の反応はびっくりするくらい何もないです。あ、そう、Tバックね。て感じですね。
今はTバックは珍しいものではないし、結構履いてる人は多いと思います。でもやっぱりあの細い布と食い込みが落ち着かなくてダメだ、という人もいれば(姉がそうです)、一度履いたら手放せない、という人もいるでしょうから、一度試してみるといいですよ。

Qc++ , template , ファイル分割 , 助けてください...

//-----------------coord.h-------------
template <class type>
class coord
{
type v[3];
public:
coord(void);
void Show(void);
};
//-----------------main.cpp------------
#include<iostream>
#include"coord.h"
using namespace std;

int main(void)
{
coord<double> ob;

ob.Show();

return 0;
}
//----------------------coord.cpp-----------
#include<iostream>
#include"coord.h"
using namespace std;

template <class type>
coord<type>::coord(void)
{
v[0]=v[1]=v[2]=0;
}

template <class type>
void coord<type>::Show(void)
{
cout << "hello" << endl;
}

同一フォルダ内に上記のファイルが 3 つあります.
つまり上の 3 つのファイルを分割してコンパイルさせたいです.
この状態で...MS-DOSプロンプトからコンパイルします.

C:\test>bcc32 -c coord.cpp
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
coord.cpp:

C:\test>bcc32 -c main.cpp
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
main.cpp:

C:\test>bcc32 -emain main.obj coord.obj
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: 外部シンボル 'coord<double>::coord<double>()' が未解決(C:\USERS\TAITO\PR
OG\CPP\TEST\MAIN.OBJ が参照)
Error: 外部シンボル 'coord<double>::Show()' が未解決(C:\USERS\TAITO\PROG\CPP\TE
ST\MAIN.OBJ が参照)


すると, このようなエラー文が出てしまい
実行可能ファイルができません.

コンパイラはbccです.

原因が全く分かりません.

助けてください...





ちなみに,
分割せずにコンパイルすると通ります.

自分は c 言語での分割コンパイル経験はあるので
それをそのまま c++ 言語でも用いているのですが,
何か変えなければならないのでしょうか?

//-----------------coord.h-------------
template <class type>
class coord
{
type v[3];
public:
coord(void);
void Show(void);
};
//-----------------main.cpp------------
#include<iostream>
#include"coord.h"
using namespace std;

int main(void)
{
coord<double> ob;

ob.Show();

return 0;
}
//----------------------coord.cpp-----------
#include<iostream>
#include"coord.h"
using namespace std;

template <class type>
coord<type>::coord(void)
{
v[0]=v[...続きを読む

Aベストアンサー

> クラスの宣言はヘッダファイル上で全て行なわないといけないのですか?

違います。テンプレートだからです。
本来であれば、exportを使って移出を行えば、ほぼ最初のようにソース分割できるのですが、Borland C++ Compilerでは(Visual C++でもGCCでも)exportをサポートしていないので使えません。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報