Si infatti era la p che non permetteva l'accesso alla DLL.
Però c'è una cosa che non mi è chiara.

Supponiamo di sostituire il metodo che richiama la funzione di lettura dal file ini con il seguente(per comodità ho visualizzato i valori ch emi intereessano con una MsgBox):


Dim iniFile, section As String
Dim str_dir As String * 50
Dim str_file As String * 50
Dim val_ritorno As Long
Dim str_out As String

iniFile = App.Path & "\prova.ini"
section = "Files"
str_file = "provafile"
val_ritorno = GetPrivateProfileString(section, _
str_file, "", str_file, Len(str_file), _
iniFile)
If (val_ritorno = 0) Then
outfile.Caption = "errore"
Else
'la funzione Trim elimina gli spazi superflui
str_out = Trim(str_file)
outfile.Caption = str_out
MsgBox "str_out = " & str_out
MsgBox "Len(str_out) = " & Len(str_out)
End If

section = "Folder"
str_dir = "provafolder"
val_ritorno = GetPrivateProfileString(section, _
str_dir, "", str_dir, Len(str_dir), _
iniFile)
If (val_ritorno = 0) Then
outfile.Caption = "errore"
Else
'la funzione Trim elimina gli spazi superflui
str_out = Trim(str_dir)
outfile.Caption = str_out
MsgBox "str_out = " & str_out
MsgBox "Len(str_out) = " & Len(str_out)
End If

str_out = "\" & Trim(str_dir) & "\" & Trim(str_file)
MsgBox "str_out = " & str_out
MsgBox "Len(str_out) = " & Len(str_out)

e il file .ini modificato come segue:
[Folder]
;cartella di prova
provafolder = 'prova'

[Files]
;file di prova
provafile = 'primo.txt'

I valori che mi ritornano le varie MsgBox mi risultano poco chiari, infatti, i relativi valori ritornati da ogni MsgBox sono:

str_out = primo.txt 'OK
Len(str_out) = 10 '?
str_out = prova 'OK
Len(str_out) = 11 '?
str_out = \prova '?
Len(str_out) = 23 '?

Ovviamente questo può comportarmi problemi in seguito ad una stesura di un dato codice se i valori non sono proprio quelli che cerco. Come potrei risolvere il problema?
Grazie in anticipo


P.S. : in altri termini desidero che l'ultimo str_out sia uguale a \prova\primo.txt e che la sua lunghezza sia quella effettiva