Есть ли доступная документация по VBP (Visual Basic 6 Project) файлам? - PullRequest
3 голосов
/ 24 мая 2011

Есть ли доступная документация по ключам / значениям, используемым в файле VBP (проект Visual Basic)?Я пытаюсь лучше понять, как VBP обрабатывает ссылки внутри.

Пример строки:

Reference = * \ G {BF204980-5E29-4945-AEB5-DDB284C568D3}# 1.0 # 0 # .. \ Project1.dll # Project1

Ответы [ 2 ]

6 голосов
/ 11 июля 2012

Синтаксис ссылок описан в [MS-OVBA] :

LibidReference     = "*\" LibidReferenceKind LibidGuid 
                     "#" LibidMajorVersion "." LibidMinorVersion 
                     "#" LibidLcid 
                     "#" LibidPath 
                     "#" LibidRegName

<LibidReferenceKind>: 

%x47 (G) <LibidPath> specifies a Windows file path.

%x48 (H) <LibidPath> specifies a Macintosh path.    

<LibidGuid>: The GUID of the Automation type library.

<MajorVersion>: An unsigned integer that specifies the
major version of the Automation type library.

<LibidMinorVersion>: An unsigned integer that specifies the
minor version of the Automation type library.

<LibidLcid>: The LCID of the Automation type library.

<LibidPath>: The path to the Automation type library.

<LibidRegName>: The Automation type library’s display name
3 голосов
/ 24 мая 2011

Извините, но лучшее, что я нашел в сети, это просто обзор (http://www.securitypronews.com/it/applicationdevelopment/spn-19-20020115VisualBasicProjectFilesStructure.html).

Также обратите внимание, что элементы управления ActiveX, используемые в формах VB, будут иметь справочные записи в файле * .frm.

Я предполагаю, что вы хотите разрабатывать проекты ActiveX (будь то EXE, DLL или OCX). Если это ваша цель, вот мой совет:

(1) Подробнее о настройках двоичной совместимости.

(2) Хорошей практикой является добавление суффикса вашего эталонного исполняемого файла к .cmp, например Project1.dll.cmp. Когда вы посмотрите на двоичную совместимость, вы поймете, что я имею в виду.

(3) Разрабатывайте проекты VB6 ActiveX внутри VirtualPC; Разработка VB6 ActiveX сильно изнашивает реестр Windows.

(4) Путь к файлу к DLL / EXE / OCX в настройке Reference= изменится, когда у VB будет причина найти объект ActiveX; это пойдет с тем, что он найдет в реестре (выигрывает последний, зарегистрировавшийся). Также есть «Обновить элементы управления ActiveX», устанавливающие свойства проекта, которые могут вносить изменения.

(5) У вас практически нет контроля над GUID или библиотекой типов, которые генерирует VB6, кроме той степени, которую вы можете достичь с помощью надлежащего управления двоичной совместимостью.


Вот что я знаю - из вашего примера выше,

BF204980-5E29-4945-AEB5-DDB284C568D3 указывает GUID объекта ActiveX.

1.0 указывает версию объекта ActiveX.

0 указывает на ... я не знаю.

..\Project1.dll - это (относительный) путь, где находится (или находилась) DLL-библиотека ActiveX.

Project1 - это (дружественное) имя объекта ActiveX.

...