Почему глобальная переменная, объявленная в одном проекте VB6, не компилируется в другом проекте в той же группе проектов VB6? - PullRequest
4 голосов
/ 28 марта 2011

Прошу прощения, что это такой элементарный вопрос.

Наша группа проектов VB6 содержит 6 проектов плюс проект пользовательского интерфейса, содержащий все формы приложения.

Мы генерируем уникальный код (gstrUniqueImportUuid) в коде одной из форм, который должен быть представлен классу в другом проекте в группе проектов.

Я пытался объявить эту переменнуюкак глобальная переменная в модуле Common.bas, который является частью основного проекта пользовательского интерфейса, например:

Option Explicit
Public gstrUniqueImportUuid As String

Затем я присваиваю значение gstrUniqueImportUuid в форме, которая отлично работает.

Но затем, когда я пытаюсь использовать значение этой глобальной переменной в одном из других проектов в группе, этот проект не будет компилироваться - «переменная не определена».

Что, черт возьми, я делаю не так?

Спасибо.

Ответы [ 2 ]

4 голосов
/ 28 марта 2011

Модули не являются публичными за пределами Проекта. То, что вы хотите сделать, это создать класс и установить его экземпляр на GlobalMultiUse. Любые открытые свойства этого класса будут видны любому проекту, ссылающемуся на этот проект. Обратите внимание, что вы можете делать это только для ActiveX DLL и ActiveX EXE.

1 голос
/ 28 марта 2011

Я немного догадываюсь, но есть ли в «другом проекте», где вы пытаетесь использовать переменную, ссылка на «проект пользовательского интерфейса»?Проект пользовательского интерфейса должен быть проверен в списке ссылок в меню проекта-> ссылки.

Обычно это проект пользовательского интерфейса, который ссылается на один или несколько других проектов, но не наоборот.Даже если переменная является глобальной, на проект, в котором она объявлена, должна быть ссылка.

Если ссылка не существует и вы не можете добавить ссылку (возможно, вы получаете циклические зависимости), вы можете переместитьобъявление поля gstrUniqueImportUuid для одного из других проектов .bas-файлов.Проект, в который вы перемещаете его (если не «другой проект» должен ссылаться на проект пользовательского интерфейса (и «другой проект»)

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