VC++.NETにおけるGetPrivateProfileStringの使い方について – プログラミング – Home

通知
すべてクリア

VC++.NETにおけるGetPrivateProfileStringの使い方について


はらちぇる
 はらちぇる
(@はらちぇる)
ゲスト
結合: 18年前
投稿: 1
Topic starter  

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のみ。

全ての文字列を取得する場合はどうすればよいのでしょうか。
ご教授願います。


引用解決済
トピックタグ
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

char型配列をLPWSTRのようにキャストすることは普通はありません。

LPWSTR型を欲しているのであれば、
WCHAR型の文字列領域を渡してください。

というか
> GetPrivateProfileString(tag1,tag2,assert,(LPWSTR)test ,nSize,filename);
4番目だけ LPWSTR型なんですか?


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

一応 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


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

> MessageBox( buff, MB_OK );
間違えました。
MessageBox( NULL, buff, _T( 結果 ), MB_OK );


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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