Private Declare Function GetPrivateProfileString Lib "kernel32" Alias _
"GetPrivateProfileStringA" (ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Integer, ByVal lpFileName As String) As Integer
Dim value As String = ""
Dim length As Integer
Dim IniFileName As String
GetPrivateProfileString("Config", "UserName", "None", value, length, IniFileName)
but value contains an empty string!?
I confes to being a VB n00b, less than a week, in fact, but I can’t see what’s wrong there. The file exists, it contains a section called “Config” which has an entry called “UserName” with a value – but even if not, wouldn’t value take the default?
(And, no, I don’t want to use the registry, thanks 😉
Edit: It’s not returning an empty string – it’s returning whatever I initialize value to before calling GetPrivateProfileString().
Which is to say that if I
Dim value As String = "xxx"
then it stil contains “xxx” after the call and not the default value.
You have to set the size in the params, and reserve space for the result.
Insert this lines before the call to the function:
Forgot something: you have to use the return value of the function, as this is the length of the actual value you get, and use a
Left(value,length)to get your real answer.