Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 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
Ы.
До сих пор на этом попадаюсь :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам