Как засунуть в модуль...

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
serix
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 177
Зарегистрирован: 09.11.2002 (Сб) 17:54
Откуда: Russia

Как засунуть в модуль...

Сообщение serix » 24.03.2003 (Пн) 19:18

Есть вот такой код для чтения-записи ini
Option Explicit

Private Declare Function WritePrivateProfileString Lib _
"kernel32" Alias "WritePrivateProfileStringA" (ByVal _
lpApplicationName As String, ByVal lpKeyName As Any, _
ByVal lpString As Any, ByVal lpFileName As String) As Long

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

'Читаем данные из ini
Function ReadINIKey(FileName As String, Section As String, KeyName As String) As String
Dim RetVal As String
RetVal = String(255, Chr(0))
ReadINIKey = Left(RetVal, GetPrivateProfileString(Section, KeyName, "", RetVal, Len(RetVal), FileName))
End Function

'Записываем данные в ini
Function WriteInIKey(FileName As String, Section As String, KeyName As String, KeyValue As String)
WritePrivateProfileString Section, KeyName, KeyValue, FileName
End Function

В отдельном dll он работает, но очень надо засунуть его в модуль или модуль классов, сам делаю - не работает

ReadINIKey = Left(RetVal, GetPrivateProfileString(Section, KeyName, "", RetVal, Len(RetVal), FileName)) - в этой строчке пишет array expected
Подскажите кто-нибудь, пожалста, в чем дело...
ZU

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 24.03.2003 (Пн) 19:23

Я что то не совсем въезжаю в смысл написанного, но мне кажется что RetVal надо объяслять именно как Array или Variant, а не String.

serix
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 177
Зарегистрирован: 09.11.2002 (Сб) 17:54
Откуда: Russia

Сообщение serix » 24.03.2003 (Пн) 19:59

Ну, то-есть, код надо засунуть не в ActiveX dll, а в отдельный модуль в к-л EXE проекте(чтоб не тоскать отдельный dll), но он туда не суется :cry:

А на счет
RetVal надо объяслять именно как Array или Variant, а не String.

Retval должен быть именно string, иначе не пашет...
ZU

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 24.03.2003 (Пн) 20:12

Проверил бы ты код еще раз, я и с Array и как ты написал проверил - все компилится и бегает.

serix
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 177
Зарегистрирован: 09.11.2002 (Сб) 17:54
Откуда: Russia

Сообщение serix » 24.03.2003 (Пн) 21:10

2 RayShade: теперь прога начала грозиться ошибкой 13(несчастливое число :evil:) и пишет Type mismatch.
Если не затруднит может кинешь сюда свой код.
Псибо...
ZU

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 25.03.2003 (Вт) 10:28

Он уже тут есть. Я его просто скопировал ;)

Я думаю что проблема также может быть в том, что ты пытаешься указать пустую строку. Может, попробовать вместо нее указать именно переменную, содержащую эту строку?

AlienMan
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 30.06.2003 (Пн) 11:03
Откуда: Kaliningrad

Сообщение AlienMan » 30.06.2003 (Пн) 11:19

Если не лень, напиши мне(jessus@bk.ru). Я тебе пришлю готовый модуль для чтения ini.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Mail.ru [бот], Yandex-бот и гости: 22

    TopList