'宣言 'Windowsプロファイル入出力 (Win32API) Private Declare Function GetPrivateProfileStringKey Lib "kernel32" Alias _ "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal _ lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString _ As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
'ソース部
Public Sub subGetIniData()
Dim l_strPath As String 'Iniファイルパス Dim l_strGetIndexInfo(g_iniDataCnt) As String 'Iniファイル取得用
> Private Declare Function GetPrivateProfileStringKey Lib "kernel32" Alias _ > "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal _ > lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString _ > As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
分類:[.NET]
'宣言
'Windowsプロファイル入出力 (Win32API)
Private Declare Function GetPrivateProfileStringKey Lib "kernel32" Alias _
"GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal _
lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString _
As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
'ソース部
Public Sub subGetIniData()
Dim l_strPath As String 'Iniファイルパス
Dim l_strGetIndexInfo(g_iniDataCnt) As String 'Iniファイル取得用
l_strPath = VB6.GetPath & "\ini\SystemIni.ini"
l_strGetIndexInfo(1) = fncGetIniString("Address", "Host", l_strPath) 'ActiveHost
l_strGetIndexInfo(2) = fncGetIniString("Address", "Port", l_strPath) 'ActivePort
End Sub
Public Function fncGetIniString(ByRef Section As String, ByRef Keyname As String, ByRef FileName As String) As String
Dim Default_Renamed As String
Dim StrRet As String
Dim StrRetLen As Integer
Default_Renamed = ""
StrRet = ""
StrRet = Space(200)
StrRetLen = Len(StrRet)
StrRetLen = GetPrivateProfileStringKey(Section, Keyname, Default_Renamed, StrRet, StrRetLen, FileName)
If Mid(StrRet, 1, 1) = vbNullChar Then
StrRet = ""
End if
End Function
上記そーすを通すと、iniファイルのパス名がうまくとれないのです。
l_strPathには、ちゃんとフルパスの\ini\SystemIni.iniファイルが入ってくれるのですが、
それを、fncGetIniStringの引数として渡して、fncGetIniStringの中に入った状態では、
FileNameに正常に入っているのですが、
StrRetLen = GetPrivateProfileStringKey(Section, Keyname, Default_Renamed, StrRet, StrRetLen, FileName)
この1行を通すと、FileNameの値がフルパスの\ini\Sとなってしまいます。
すみませんが、どなたかご教授お願いします。
■■■■■■■
ちなみに
iniファイル
[Address]
;ポート番号(4000)
Port=4000
host = 10.100.10.10
■■■■■■■