2010-03-10 2 views
1

Я хочу создать ActiveX DLL из Visual Basic 6, из которого я хотел бы назвать некоторые публичные функции. Я буду называть эту DLL только с VB6. Однако кажется, что только классы экспортируются. Есть ли обходной путь?Есть ли способ экспортировать функцию (а не класс) в VB6?

Я знаю, что есть способ создать библиотеки DLL из VB6 со стандартными функциями WINAPI. Это не то, что я хочу, потому что мне пришлось бы печатать тысячи инструкций Declare, и я потерял бы динамическую компоновку, поэтому мне не нужно перекомпилировать приложения при смене DLL.

Я изложу свою проблему на всякий случай, если у кого-то есть лучшая идея. У меня есть куча относительно больших проектов, каждый со своим собственным кодом, а затем у меня есть много общего кода, который используется в нескольких проектах. Досадно добавлять каждый файл в каждый новый проект и перекомпилировать все из них для каждого незначительного изменения. Поэтому я подумал о создании библиотеки DLL, поэтому я бы просто добавил ссылку «Добавить ссылку», когда приступаю к новому проекту, и больше не нужно больше беспокоиться о перекомпиляции (по крайней мере, для незначительных изменений), но я обнаружил, что только открытые классы экспортируются ,

Я бы не хотел реорганизовывать код в классах, но это огромная задача: есть около 10 лет кода из 3-4 человек, поэтому я не могу ничего сделать за одну ночь.

ответ

5

Да, это легко.

  1. Поместите все служебные программы в специальные классы в DLL.
  2. Задайте Instancing имущество этих классов, так как GlobalMultiUse.
  3. Сборка DLL.
  4. В вашем проекте клиента (со ссылкой на DLL) теперь вы сможете вызывать функции и подпрограммы, как если бы они были в модуле в этом проекте. Вам не нужно создавать какие-либо объекты.

Вы можете узнать больше в VB6 manual.

Смежные вопросы