LPTSTR型の文字列へのリテラルの代入の仕方がわかりません。
char *x ="123";
このxをLPTSTR lptStrに渡したい場合
LPTSTR lptStr = TEXT(x);
LPTSTR lptStr = x;
としてもダメでした…
なぜでしょう?
Win32apiの文字列について
Re: Win32apiの文字列について
LPTSTRは設定によってwchar*かchar*に切り替わる型です。
そこにchar*固定であるxを代入しても無理があります。
リテラルの文字列であればあなたの示した通り、TEXTマクロを使います。
それをchar*変数であるxを入れるのは間違いです。
xの型もLPTSTRにしないといけません。
そこにchar*固定であるxを代入しても無理があります。
リテラルの文字列であればあなたの示した通り、TEXTマクロを使います。
それをchar*変数であるxを入れるのは間違いです。
xの型もLPTSTRにしないといけません。
written by へにっくす
Re: Win32apiの文字列について
へにっくすさん回答ありがとうございます。
win32プロジェクトでchar型の亜種が出てきまくって大変手こずっております。
もう少し教えてほしいのですが
シングルバイト文字、マルチバイト文字、ユニコード、ワイド文字の違いを教えてください。
頭がおかしくなりそうです。
char xはマルチバイト?シングルバイト?ユニコード?
win32プロジェクトでchar型の亜種が出てきまくって大変手こずっております。
もう少し教えてほしいのですが
シングルバイト文字、マルチバイト文字、ユニコード、ワイド文字の違いを教えてください。
頭がおかしくなりそうです。
char xはマルチバイト?シングルバイト?ユニコード?
Re: Win32apiの文字列について
LPTSTR a[20];
a[0]='x';
a[1]='y';
LPTSTR lptStr = a;
これエラーでました…
lptstrがxyという文字列になってほしいだけなのに…
a[0]='x';
a[1]='y';
LPTSTR lptStr = a;
これエラーでました…
lptstrがxyという文字列になってほしいだけなのに…
Re: Win32apiの文字列について
LPTSTRはPが入っていることからわかるようにポインタなので、aの型が間違っています。
とするべきでしょう。
さらに、文字定数もTEXTマクロを使って とするといいでしょう。
また、aの内容を文字列として使用するには最後にナル文字をいれないといけないことに注意してください。
さらに、文字定数もTEXTマクロを使って とするといいでしょう。
また、aの内容を文字列として使用するには最後にナル文字をいれないといけないことに注意してください。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: Win32apiの文字列について
????
でも同じポインタ型である
char *は
char *x
x[0]='a';
ってできますよね????
LPTSTRの場合はできないと?
でも同じポインタ型である
char *は
char *x
x[0]='a';
ってできますよね????
LPTSTRの場合はできないと?
Re: Win32apiの文字列について
TCHAR x[20];
x[0]=TEXT('a');
x[1]=TEXT('\0');
LPTSTR lptStr=x
これで文字列aが実現できました。
ちなみに連結とかはどうすれば?
lptstr=x+TEXT("bcd");
でabcdってしたくても無理でした。
x[0]=TEXT('a');
x[1]=TEXT('\0');
LPTSTR lptStr=x
これで文字列aが実現できました。
ちなみに連結とかはどうすれば?
lptstr=x+TEXT("bcd");
でabcdってしたくても無理でした。
Re: Win32apiの文字列について
できます。同じようにやればいいです。charではなくchar *がポインタ型であることに注意してください。notebook さんが書きました:????
でも同じポインタ型である
char *は
char *x
x[0]='a';
ってできますよね????
LPTSTRの場合はできないと?
なお、配列とポインタは同じものではありません。
StringCchCat関数が使えるはずです。notebook さんが書きました:ちなみに連結とかはどうすれば?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: Win32apiの文字列について
俺にはWin32 APIは敷居が高すぎるということで、あきらめることにしました。
大変申し訳ありません。Windows フォーム アプリケーションで作ろうと思います。
大変申し訳ありません。Windows フォーム アプリケーションで作ろうと思います。