iniファイルが保存されないのですが・・・

[戻る]
ぺこ 2007/10/17(水) 12:50:15
2005を使っています。
iniファイルは推奨されていないとのことですが、事情によりiniファイル
を使うことになりました。
そこで、以下のようなプログラムを作ったのですが、
どうもiniファイルに保存されません。

CWinApp* pApp = AfxGetApp();
CString path;
int rev;
if( pApp->m_pszProfileName ){
 free( ( void* )pApp->m_pszProfileName );
 ::GetModuleFileName( NULL, path.GetBuffer( 512 ), 512-1 );
 path.ReleaseBuffer();
 rev = path.ReverseFind('\\');
 path.Delete( rev + 1, path.GetLength() - rev - 1 );
 path = path + "test.ini";
 pApp->m_pszProfileName = _tcsdup( path );
}
pApp->WriteProfileInt(TEXT("SECTION"),TEXT("TESTKEY"),50);

何が原因なのかわからないのですが・・・。
(どのサイトを見ても、何も気にせず保存できるような事が書いてありますし・・)
iniファイルを作成するタイミング(今はInitInstance()でやってます)や
設定する何かがあるのでしょうか?
基本、レジストリに保存するということですが、上記作業を行うことで
iniファイルとしてディレクトリに保存されるわけですよね??

Blue 2007/10/17(水) 13:05:10
とりあえず、OSの種別も書いておきましょう。
(Windows Vistaの場合特殊なので)


http://www.hiramine.com/programming/windows/inifilewriteget.html
を元に書き直したらどうなりますか?
(パスの処理は専用の関数に任せるべき)

ぺこ 2007/10/17(水) 13:32:45
[[解決]]
Blueさん
ありがとうございます。
提示していただいたHPを読んで即解決しました。
SetRegistryKey()
↑これをコメントアウトしていませんでした。
私が探したHPにも記述しているところはありましたが、
私の発想が貧弱なため、そのままとしていました。
この関数より下でiniファイルの書込みテストをしていましたので
思うように動作していなかったようです。
SetRegistryKey()をコメントアウトすることで問題なく保存するように
なりました。
これでもちゃんと調べていたのですが、読解力がないというか・・・
恥ずかしい限りです。
それと、OSの種別、また質問することがありましたら記述します。
(今回はXPでした。)
どうもありがとうございました。

古いスレッドには追加発言できません。