Страница: 1 |
|
Вопрос: как найти файл config?
|
Добавлено: 13.08.09 00:59
|
|
Автор вопроса: avers_inc
|
можно ли работать с одним config-файлом из разных проектов?
вопрос в следующем:
есть один проект, который использует в работе параметры, записанные в файле user.config, который visual studio сама по себе размещает где-то в недрах Documents and settings, и при этом использует для наименования поддиректорий какой-то шифр...
мне нужно добавить в это решение еще один проект (в будущем отдельный exe-шник). оба экзешника будут устанавливаться одновременно из одного пакета. но надо, чтоб второй проект использовал файл конфигурации первого. Можно ли как нибудь этого добиться стандартными средствами?
Ответить
|
Номер ответа: 3 Автор ответа:
avers_inc
 
Вопросов: 7 Ответов: 19
|
Профиль | | #3
|
Добавлено: 13.08.09 13:28
|
Artyom пишет:
Можно например хранить эти настройки в реестре.
UnDeAdZak пишет:
Или создай свой .ini -файл.
а можете подсказать или дать ссілку, что почитать, как с ними работать средствами VB2008? А то в VB 6.0 я работал с и с реестром и с ini-файлами через API, но перенести их в VB2008 почему-то не получается...
Ответить
|
Номер ответа: 6 Автор ответа:
avers_inc
 
Вопросов: 7 Ответов: 19
|
Профиль | | #6
|
Добавлено: 13.08.09 16:25
|
А не могли бы подсказать, где у меня ошибка?
- 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 Int32, ByVal lpFileName As String) As String
- Declare Function WritePrivateProfileString Lib "kernel32" Alias _
- "WritePrivateProfileStringA" (ByVal lpApplicationName _
- As String, ByVal lpKeyName As String, ByVal lpString As String, _
- ByVal lpFileName As String) As Int32
-
- Public Function sGetINI(ByVal sINIFile As String, ByVal sSection As String, ByVal sKey _
- As String, ByVal sDefault As String) As String
-
- Dim sTemp As String
- Dim nLength As Integer
-
- sTemp = Space$(256)
- nLength = GetPrivateProfileString(sSection, sKey, sDefault, sTemp, 255, sINIFile)
- sGetINI = Left$(sTemp, nLength)
- End Function
-
- Public Sub WriteINI(ByVal sINIFile As String, ByVal sSection As String, ByVal sKey _
- As String, ByVal sValue As String)
-
- Dim n As Integer
- Dim sTemp As String
-
- sTemp = sValue
- For n = 1 To Len(sValue)
- If Mid$(sValue, n, 1) = vbCr Or Mid$(sValue, n, 1) = vbLf _
- Then Mid$(sValue, n) = " "
- Next n
- n = WritePrivateProfileString(sSection, sKey, sTemp, sINIFile)
- End Sub
У меня в VB6.0 это работало. Поменял только типы long на Int32 и Any на String.
запись работает отлично, а при попытке чтения, он вроде бы даже видит значение (при пошаговом выполнении это видно), например - MsgBox(sGetINI(psCFG, "MySQL", "MySQLBinPath", "CFGError"))
, выдает ошибку: "Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена."
Ответить
|
Страница: 1 |
Поиск по форуму