ResolvePath для VB6 - разрешить переменные среды - PullRequest
6 голосов
/ 11 января 2011

Я ищу функцию в VB6 (или некоторый WinAPI), которая могла бы удовлетворить это требование: взять строку входного пути, которая включает переменные среды, и вывести этот путь с разрешенными переменными среды.

Например:

  • Ввод: "%windir%\System32\"
  • Ввод: "C:\Windows\System32\"

Конечно, я мог бы написать свой собственный парсер, но мне интересноесли эта функциональность уже существует?

Это было бы похоже на метод Spring Framework Spring Framework *1017*.

Ответы [ 3 ]

6 голосов
/ 12 января 2011

Kernel32.dll экспортирует функцию с именем ExpandEnvironmentStrings:

Мой VB6 ржавый, но вы можете вызвать это, выполнив:

Declare Function ExpandEnvironmentStrings _
   Lib "kernel32" Alias "ExpandEnvironmentStringsA" _
   (ByVal lpSrc As String, ByVal lpDst As String, _
   ByVal nSize As Long) As Long

Затем вфункция или подраздел:

Dim result as Long
Dim strInput As String, strOutput As String
'' Two calls required, one to get expansion buffer length first then do expansion
result = ExpandEnvironmentStrings(strInput, strOutput, result)
strOutput = Space$(result)
result = ExpandEnvironmentStrings(strInput, strOutput, result)
4 голосов
/ 12 января 2011

В худшем случае вы можете использовать собственную реализацию: ExpandEnvironmentStrings

0 голосов
/ 12 января 2011

Использование редко используемой функции Environ (): http://vbcity.com/forums/t/45987.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...