visual studio2005 VC++を使用して開発しています。
現在、困っているのはデータ型の変換です。
初歩的な質問かもしれませんが、
CStringからWORDに変換ができません。
もしくはWORDからcharへの変換方法がありましたら教えて下さい。
ネット等で調べてみたのですが、載ってませんでした。
宜しくお願いします。
> CStringからWORDに変換ができません。
> もしくはWORDからcharへの変換方法がありましたら教えて下さい。
CString は文字列
WORD は2byteバイナリ
char は8bit文字
互いに異なるので、あなたが変換規則を明らかに
しない限り答えようがありません。
早いスレ有難うございます。
やはりCStringからWORDへの変換の方が都合がよいのでそちらの変換をご教授下さい。
やりたいことは
WORD sample[200];
CString filename;
filename = *.txt; //はファイル名
setparam(sample); //setparam(WORD *list)はファイルを読み込む為の関数
以上のようにfilenameにファイル名を入れてその選択したファイルをsetparam関数に
セットしたいんです。
そこで
sample = filenameのようにしてファイル名を受け渡したいのですが・・・
なにかよい方法はありますでしょうか?
ちんぷんかんぷんです。
「変換規則を示してくれ」が理解できませんか?
>ちんぷんかんぷんです。
>「変換規則を示してくれ」が理解できませんか?
申し訳ないですがどういうことですか?
setparam が要求する WORD 配列は、中身がどういう状態になっていることを要求してい
るのか? ということです。
引数に filename が欲しいのなら、その WORD 配列に filename が「どういう形で」入っ
ていればいいのか? ということです。
あるいは変換後に、WORD sample[200]をどのように使いたいのか
書いてくれれば、変換規則が分かるかもしれません。
# 「sampleは、ファイル名として使いたいです」とか書かれたら
# 絶対分かりません。それは理解できますか?
ソース上の記述だけを見る限りでは、
WORD *listはファイルか読み込んだ結果を受け取る為の変数では
無いかと思うのですけれど、違うのでしょうか?
受け取る為の変数にどうしてファイル名を入れるのですか?
本来ならsetparamにファイル名を引き渡す為の引数と
結果を受け取る為の引数の両方が必要になると思いますけれど。
やりたい事をちゃんと整理してその作業を行なうには
何が必要なのかと言う部分を考えてみる事をお勧めします。
蛇足。
単純に引数を減らしたいと言う話ならやめといた方がいいです。
ソースの可読性が落ちますし、関数の使い方としても素直で無いので
お勧めしません。
とにかく書き込み内容からわかる事が少ないのでどうしても
想像で書いてしまいますね。
/*
setparam.cpp
Windows XP pro sp3 VC++2005 Standerd
/Od /D WIN32 /D _DEBUG /D _CONSOLE /D _UNICODE
/D UNICODE /Gm /EHsc /RTC1 /MDd /FoDebug\\
/FdDebug\vc80.pdb /W4 /nologo /c /Wp64 /ZI /TP
/errorReport:prompt
*/
#include <windows.h>
void setparam ( WORD *list )
{
TCHAR * disp = ( TCHAR * ) list ;
MessageBox ( NULL, disp, TEXT ( FileName ), MB_OK ) ;
return ;
}
int main ()
{
TCHAR * FileName = TEXT( FILENAME.TXT ) ;
WORD * list = ( WORD * ) FileName ;
setparam ( list ) ;
return 0 ;
}
// setparam の仕様がわからないので、適当です
Standerd まちがえ^^
Standard です
WORDぢゃなくWCHARの間違いだったりして。
憶測巡らせても解決には至らんのでスレ主の反応を待ちましょうよぅ...