Страница: 1 |
Страница: 1 |
Вопрос: API
Добавлено: 29.04.05 11:23
Автор вопроса: mary_bys
Не приходилось кому пользоваться API функцией GetPrivateProfileString?
(читает Ini-файл). В VB6 я ее объявляю как
Private Declare Function GetPrivateProfileString Lib "kernel32" _
Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long, _
ByVal lpFileName As String) As Long
и все работает. В VB.NET Any нету, я заменила на String (прочла в интернете):
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 Long, _
ByVal lpFileName As String) As Long
Ошибки нет, но значение не находится и возвращается lpDefault
Где у меня кривизна при работе с типами?
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #1
Добавлено: 29.04.05 12:44
Из "GetPrivateProfileStringA" убери последнюю А.
Если сразу не поможет, то строковым параметрам (каждому) присобачь атрибут <MarshalAs>, указав, что маршалить как ByValTStr.
Номер ответа: 2
Автор ответа:
mary_bys
Вопросов: 6
Ответов: 1
Профиль | | #2
Добавлено: 29.04.05 14:24
Пример использования GetPrivateProfileStringA я взяла в MSDN в разделе перехода с VB6, но не заменила все необходимые типы (вместо VB6 Long надо VB.NET Integer - тогда все работает)
Номер ответа: 3
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #3
Добавлено: 29.04.05 15:51
Ы.
До сих пор на этом попадаюсь