VC++.net iniファイルパス指定の仕方
VC++2005.netマネージでiniファイルを使いたいと思っています。
iniファイルから変数を読み込む関数GetPrivateProfileInt,GetPrivateProfileStringの引数にはiniファイルの絶対パス(c:\~set.ini)を指定しなければならないようです。
実行ファイルと同じ場所にiniファイルを置きたいのですが、これはどうやって指定するのでしょうか。
私が思いついたコードです。
String ^exepath = gcnew String(System::Windows::Forms::Application::ExecutablePath);//実行ファイルのパスを取得。
char charpath[500]={0};
sprintf(charpath,"%s",exepath->ToString);//string型からchar型へ変換する。
int len = strlen(charpath);
charpath[len - ??] = \0;//実行ファイル名を消す
char ininame[] = "setting.ini";
strcat(charpath,ininame);
これは実行ファイルの絶対パスと実行ファイル名を取得し加工します。
c:\~~\prog\test.exe(string型の文字列)
↓
c:\~~\prog\test.exe(char型の文字列)
↓
c:\~~\prog\ (後ろつまり実行ファイル名の部分を削る)
↓
c:\~~\prog\setting.ini (iniファイル名を後ろに追加する。)
ただ、これには問題がありこの変数を引数にしたのでは
>'GetPrivateProfileIntW' : 1番目の引数を'const char[10]'から'LPCWSTRに変換できません。
と出ます。
どうすればiniファイルのパスを指定できるのでしょうか。