PathRemoveFileSpecというパスから末尾のファイル名部分を取り除く関数がありますのでこれを使えばできます。
コード: 全て選択
Declare Function PathRemoveFileSpec Lib "shlwapi.dll" _
Alias "PathRemoveFileSpecA" (pszPath As *Char) As Long
コード: 全て選択
Dim ModulePath[MAX_PATH] As Char
If GetModuleFileName(0, ModulePath, MAX_PATH) = 0 Then
' エラー
End If
If PathRemoveFileSpec(ModulePath) = FALSE Then
' エラー
End If
EXEのパスが"C:\Foo\Bar.exe"ならばこのコードを実行すると
ModulePathには"C:\Foo"が格納されています。
ここにhoge.iniを保存したければ,MakeStr(ModulePath) & "\hoge.ini"とすれば"C:\Foo\hoge.ini"となります。
ModulePathを使いまわす気がなければ,
変数ModulePathをIniファイルへのパスだということを示す適切な変数名にした上で,
直接lstrcpyで書き込んでしまっても良いでしょう。