Hallo,
in einem Modul haben ich folgenden Code, um eine INI-Datei zu schreiben und zu lesen:
Zu den Zeile 1 und 3 kommt bei der Codeanalyse:
"Warnung CA1060 Als P/Invoke-Methode muss 'Module1.GetPrivateProfileString(ByRef String, ByRef String, ByRef String, ByRef String, Integer, ByRef String)' in einer Klasse mit dem Namen NativeMethods, SafeNativeMethods oder UnsafeNativeMethods definiert werden."
Mir ist schon klar, dass es sich bei den beiden Deklarationen um ungemanagten Code handelt und ich habe dazu hier und hier nachgelesen.
Leider komme ich trotzdem nicht dahinter, wie der Code korrekt modifiziert werden muss, damit die Warnung unterbleibt.
Kann wer helfen?
in einem Modul haben ich folgenden Code, um eine INI-Datei zu schreiben und zu lesen:
VB.NET-Quellcode
- Public Declare Ansi Function GetPrivateProfileString Lib "kernel32.dll" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Int32, ByVal lpFileName As String) As Integer
- Public Declare Ansi Function WritePrivateProfileString Lib "kernel32.dll" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Int32
- Public Function INI_WriteValueToFile(ByVal strSection As String, ByVal strKey As String, ByVal strValue As String, ByVal strFile As String) As Boolean
- 'Funktion zum Schreiben
- 'strSection = Sektion in der INI-Datei
- 'strKey = Name des Schlüssels
- 'strValue = Wert, der geschrieben werden soll
- 'strFile = Vollständiger Pfad zur INI-Datei
- Return (Not (WritePrivateProfileString(strSection, strKey, strValue, strFile) = 0))
- End Function
- Public Function INI_ReadValueFromFile(ByVal strSection As String, ByVal strKey As String, ByVal strDefault As String, ByVal strFile As String) As String
- 'Funktion zum Lesen
- 'strSection = Sektion in der INI-Datei
- 'strKey = Name des Schlüssels
- 'strDefault = Standardwert, wird zurückgegeben, wenn der Wert in der INI-Datei nicht gefunden wurde
- 'strFile = Vollständiger Pfad zur INI-Datei
- Dim strTemp As String = Space(1024), lLength As Integer
- lLength = GetPrivateProfileString(strSection, strKey, strDefault, strTemp, strTemp.Length, strFile)
- Return (strTemp.Substring(0, lLength))
- End Function
Zu den Zeile 1 und 3 kommt bei der Codeanalyse:
"Warnung CA1060 Als P/Invoke-Methode muss 'Module1.GetPrivateProfileString(ByRef String, ByRef String, ByRef String, ByRef String, Integer, ByRef String)' in einer Klasse mit dem Namen NativeMethods, SafeNativeMethods oder UnsafeNativeMethods definiert werden."
Mir ist schon klar, dass es sich bei den beiden Deklarationen um ungemanagten Code handelt und ich habe dazu hier und hier nachgelesen.
Leider komme ich trotzdem nicht dahinter, wie der Code korrekt modifiziert werden muss, damit die Warnung unterbleibt.
Kann wer helfen?
Grüße
praetor
praetor