全角ひらがなをバッファーに移したいのですが、何故か半角カタカナが。。。 – プログラミング – Home

全角ひらがなをバッファーに移したいので...
 
通知
すべてクリア

全角ひらがなをバッファーに移したいのですが、何故か半角カタカナが。。。


さがやま
 さがやま
(@さがやま)
ゲスト
結合: 22年前
投稿: 2
Topic starter  

int k;
TCHAR szBuff[9];
LPCTSTR = _T(ぱたばぷ);

for(k=0; k<lstrlen(lpsz); k+=2)
lstrcpyn(szBuff+ k, lpsz[k], 2);

とした時、コンパイルすると、
LPCTSTR = _T(ぱたばぷ);
の行の所で、
”関数 _Tは定義されていません。
int型の値を返す外部関数と見なします。”
というWARNINGの後に、
”初期化子が定数ではありません。”
と言うコンパイルエラーが出ます。

szBuffの所で、ぱ、た、ば、ぷ、と言う
ままの2バイトの
ひらがなを入れていきたいのです。

そして、
LPCTSTR = _T(ぱたばぷ);
の所を
LPCTSTR = ぱたばぷ;
に変えると、コンパイルは通りますが、
何故か、
全角でなくて、半角に化けたカタカナが入ってくるようですし、
どうすればいいのでしょうか?

この時の現象としては、
全角のひらかなや漢字も一応、%cで確かめられるのではないかと思って、
printfでszBuffの変更後の結果を
見ているのですが(そこもそれでいいか気になっている)、
マ ス ホ ユ ”
なんて言う結果になっています。


引用解決済
トピックタグ
はるる
 はるる
(@はるる)
ゲスト
結合: 22年前
投稿: 2
 

LPCTSTR は 変数ではありません。
ポインタも理解できていないようです。

まずは そこを理解してください。


返信引用
島
 島
(@島)
ゲスト
結合: 23年前
投稿: 238
 

>int k;
>TCHAR szBuff[9];
>LPCTSTR = _T(ぱたばぷ);
>
>for(k=0; k<lstrlen(lpsz); k+=2)
>lstrcpyn(szBuff+ k, lpsz[k], 2);

上のコードで幾つか不明な点があります。
(1) 本当にこのままでコンパイルして下に示すような警告が出たのですね?
>LPCTSTR = _T(ぱたばぷ); の行の所で、
>”関数 _Tは定義されていません。
>int型の値を返す外部関数と見なします。”
>というWARNINGの後に、
>”初期化子が定数ではありません。”
この警告から判断すると LPCTSTR は int 型の変数としてみなしているようです
つまり、LPCTSTR も _T() もマクロとして定義がどこにもないということです
このことは MFC のヘッダーがどこでも使っていないのに _T や LPTCSTR やを使っている
という事だと思います

(2) lpsz という未定義か未宣言かの変数があるようなのに警告もエラーも出ていないらしい
のは何故なんでしょうか?

>どうすればいいのでしょうか?
貴方はどうなさりたかったのでしょうか?
大体どういう状況なのか読み手に理解できる程度の情報を与えもしないで教えて下さいは
少し了見が違うと思うのは間違ってますでしょうか?


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました