VC++.NETで開発を行っている者です。
設定を保存したiniファイルA.INIを読み込んで文字列を取得したいのですが、
tag1 = SetMidiDevice;
tag2 = Device;
char test[80];
GetPrivateProfileString(tag1,tag2,assert,(LPWSTR)test ,nSize,filename);
このように行うと、一文字目しか取得できません。
[SetMidiDevice]
Device=1:abcdef
だった場合は1のみ。
全ての文字列を取得する場合はどうすればよいのでしょうか。
ご教授願います。
char型配列をLPWSTRのようにキャストすることは普通はありません。
LPWSTR型を欲しているのであれば、
WCHAR型の文字列領域を渡してください。
というか
> GetPrivateProfileString(tag1,tag2,assert,(LPWSTR)test ,nSize,filename);
4番目だけ LPWSTR型なんですか?
一応 TCHAR を意識したコーディング
LPCTSTR tag1 = _T( SetMidiDevice );
LPCTSTR tag2 = _T( Device );
TCHAR buff[ 80 ];
GetPrivateProfileString( tag1, tag2, _T( default ), buff ,
sizeof( buff ) / sizeof( buff[ 0 ] ), _T( A.INI ) );
MessageBox( buff, MB_OK );
char型文字列がほしいならば、名にGetPrivateProfileStringAを呼ぶか、
文字コードの設定を、マルチバイト文字を利用するみたいなヤツに変更するかしてくだ
さい。
(wcstombsでchar型文字列に変換しても良いが。)
VC2005の場合ですが参考スレ)
http://cgi21.plala.or.jp/keny01/patio/patio.cgi?mode=view&no=250
> MessageBox( buff, MB_OK );
間違えました。
MessageBox( NULL, buff, _T( 結果 ), MB_OK );