何年か前に作成したツールをビルドしていて,ちょっと気になったこと.
exe 名を変更した時,設定値がうまく引き継がれない.
レジストリを使用している時は AFX_IDS_APP_TITLE を追加すれば良いが ini では効果がない.
最近書いたコードからは,次の様に m_pszProfileName を変更する様にしている.
BOOL RI_Set_ProfileName (void)
{
CWinApp* app = AfxGetApp() ;
if (app == NULL) { return FALSE ; }
CString nowINI = app->m_pszProfileName ;
CString newINI = ::INI_get_module_ini().c_str() ;
if (nowINI == newINI) { return TRUE ; }
free((void*)app->m_pszProfileName) ;
app->m_pszProfileName = _tcsdup(newINI) ;
{
std::tout << _T("org=") << LPCTSTR(nowINI) << std::endl ;
std::tout << _T("new=") << LPCTSTR(newINI) << std::endl ;
}
return TRUE ;
}