設定ファイルの保存先【Windows API】
Windowsにおいてはマルチユーザに対応しているのでログインユーザ毎に 設定を保存するのが正しいアプリケーションです。 アプリケーションのデータを保存する場所はWindowsが用意しています。 デスクトップのパスを取得するときに使用したSHGetSpecialFolderLocationを 使うことでアプリケーションの設定ファイルの保存先を得ることができます。 VistaからはProgram Filesへのファイルの書き込みが自由にできなくなったので ここで取得したフォルダに保存する必要があります。 アンインストール時には忘れずに削除していかなければなりません。
#include <shlobj.h> int main(int argc, char* argv[]) { TCHAR szPath[MAX_PATH+1]; LPITEMIDLIST pidl; HWND hWnd = NULL; IMalloc *pMalloc; SHGetMalloc( &pMalloc ); if( SUCCEEDED(SHGetSpecialFolderLocation(hWnd, CSIDL_APPDATA, &pidl)) ) { // パスに変換する SHGetPathFromIDList(pidl,szPath); // 取得したIDLを解放する (CoTaskMemFreeでも可) pMalloc->Free(pidl); printf("[%s]\n", szPath); } pMalloc->Release(); return 0; }