952 :
946:2007/05/13(日) 14:40:38
馬鹿には見えないし使えないMFC
ビットブリットを何年経ってもビットボルトと読んでしまう
心の中でだけど
最初にBltって言葉聞いた時に「何か下品だなぁ」と思ったのは俺だけじゃないはず。
ブリッと
俺はいまだに
ビットビルト
俺もそう読んでた。
UnkoBlt
BIT BLock Transfer
BLT だね。
ベーコンレタストマトか
すっげーハンバーガーの具にありそう
普通に「BLTサンド」じゃないか。
#尤も、某ファミレスのBLTサンドには卵が入ってたりしたが。
ベーコン・レタス・タマゴ?
いや流石にそれはw
ベーコン/レタス/トマト/卵だった。
BELT サンドだな。
一体どこまでずれていくのか
969 :
デフォルトの名無しさん:2007/05/16(水) 12:01:46
win2000やXP上で動作するのはVC++の6.0からですか?
肉とマヨネーズだめで基本的にパン食べない俺には何の話やら。
>>969 保証は無いかもしれんけど、それ以前でも32bitものなら動くんでない?
Bit Block TransferをBitBltと略する感覚がわかりません。
creat もわからんな
create → creat
どうしても5文字にしたかったのだろうか。
Thompsonが後悔したという有名な話だな
Thompson?(´・ω・`)知らんがな
検索する頭もないのか
VC++ 2005を使っています。
以下をビルドするとMessageBox関数の第二引数lpCmdLineを変換できないから
キャストしろとエラーがでますがどうやるんでしょうか?
#include<windows.h>
int WINAPI WinMain(
HINSTANCE hInstance ,
HINSTANCE hPrevInstance ,
PSTR lpCmdLine ,
int nCmdShow ) {
MessageBox(NULL , lpCmdLine , TEXT("xxx") , MB_OK);
return 0;
}
つ _tWinMain
>>978 「PSTRからLPCWSTRに変換できません」って出るの?
俺もわからん
ごめん
ここで検索しているわけだが
#include<windows.h>
#include<tchar.h>
int WINAPI _tWinMain(
HINSTANCE hInstance ,
HINSTANCE hPrevInstance ,
LPTSTR lpCmdLine ,
int nCmdShow ) {
MessageBox(NULL , lpCmdLine , TEXT("xxx") , MB_OK);
return 0;
}
983 :
980:2007/05/17(木) 21:45:46
探してみたらmbstowcs_sって関数があった
マルチバイト文字からワイド文字に変換するんだってさ
適当に
#include <windows.h>
#define STRLEN 100
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR lpsCmdLine, int)
{
wchar_t lpswCmdLine[STRLEN];
size_t nConvertedChars;
mbstowcs_s(&nConvertedChars, lpswCmdLine, STRLEN, lpsCmdLine, strlen(lpsCmdLine));
MessageBox(NULL, lpswCmdLine, TEXT("XXX"), MB_OK);
}
ってやったらうまくいった
ただ、文字列がワイドになるのはUNICODEという語がdefineされている時だけだから
UNUCODEがdefineされてなかったらダメだった
(#include <windows.h>の前の行に#undef UNICODEってやったらエラーになった)
984 :
980:2007/05/17(木) 21:47:23
>>982 「WinMainはオーバーロードできません」って出てきた
GetCommandLineWでも呼んどけば?
>>984 LPCTSTR lpCmdLineなら確かにそうなるけど
LPTSTRなら通るはず(2003, 2005)
ATL::CA2CT
988 :
980:2007/05/17(木) 22:14:28
>>985 通った
ありがとう
>>986 一番最初の行に
#undef UNICODE
って書けば通った
書かなければエラーだった(Vistaで2005)
ホントにくだすれなんですが、
MFC覚えようとC++の勉強を始めたのですが、
コンソールプログラムをVCで動かしたら速攻で終了してしまうのです。
最後にcin > i;とか入力待ちを書いておけば良いのですが、
プログラム自体は最後まで行っても処理を見るために
ウィンドウが消えないようにする方法ってないですか?
こんな些細なところでも不具合でるのかよ
Vistaは恐ろしいな
>>989 main()のreturnの行にIDE側でブレークポイント設定するとか
992 :
978:2007/05/17(木) 22:25:22
みなさん、ありがとうございます。
>>982-983はそれぞれビルドはできましたが、何故その変更でビルドできたのか
理解できていないのでこれから調べようと思います。
993 :
980:2007/05/17(木) 22:43:11
>>992 調べてみたら、VC++2005のWindowsAPIでの文字型は
(1)UNICODEが定義されているとき -> wchar_t(ワイド文字)
(2)定義されていないとき -> char
をtypedefしているらしい
>>978のプログラムは、wchar_tによる文字列の引数(LPCWSTR)が必要なのに、charの文字列(LPSTR)を入れてしまった
それならWinMainの引数もそういうのに対応してほしかった
>>993 正確には、VC++ 2005以前からchar/wchar_tの切替はあった。
VC++ 2005からUNICODEが定義された状態が初期状態になっただけ。
> ならWinMainの引数もそういうのに対応してほしかった
それが
>>979や
>>982で真っ先に挙げられた
_tWinMainなわけだが、お前の目は節穴か。
>>989 デバッグしてんなら最後にブレークポイント置いとけ
デバッグするつもりが無いなら、Ctrl-F5で実行
2005にしたら文字列は全部Unicodeになったようで
全部WCHARなんですね。
997 :
980:2007/05/17(木) 23:36:04
>>994 すまん
_tWinMainについて何も知らなかった
"hoge" は char 配列だし。
つTEXT()
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。