如何从EXE项目中引用类?

dav*_*ove 6 vb6

我的任务是复活VB6项目,自从我与VB6合作以来已经过了很长时间。

这是我的问题。

项目A是一个ActiveX EXE项目。在同一个项目组中,还有另一个ActiveX EXE项目。项目B。项目B包含clsCommon (clsCommon.cls)项目A需要使用的内容,例如:

Private clsCommonA as ProjectB.clsCommon 
Run Code Online (Sandbox Code Playgroud)

当我尝试将项目B的输出exe(而不是vbp)添加到项目A的引用中时,出现错误 Project 'Project B.vbd' can not be referenced because it's project type is EXE.

有人可以提醒我如何在EXE中引用类吗?(在输出为ActiveX DLL的项目组中的项目中引用类时,我没有遇到任何麻烦)

顺便说一句:我认为这甚至可能仅是因为20年前的某个开发人员显然已经进行了这项工作。

Mar*_*rkL 5

VB6不允许您从加载到同一IDE(项目组)的项目(ProjectA)中添加对ActiveX Exe(您的ProjectB)的引用。尝试时会显示错误。

这是因为ActiveX Exe是作为单独的进程运行的,我认为VB6 IDE不能对组中的单独项目进行处理。因此,尽管看起来您正在添加对ProjectB exe的引用,但由于它在组中,因此VB6实际上正在添加对ProjectB vbp的引用,但不支持。

您需要从您的组中删除ProjectB。然后,您将能够从ProjectA IDE引用ProjectB Exe。

如果需要在IDE中运行ProjectB(用于调试或开发),请首先启动VB6并加载ProjectB。然后启动VB6的第二个实例并加载ProjectA。启动ProjectB时,您会注意到ProjectA中的引用从ProjectB Exe更改为ProjectB vbp(在第二个IDE中运行)。适当地在ProjectB中设置断点,然后在启动ProjectA并实例化ProjectB并进行方法调用时,将在该IDE中运行ProjectB代码。