VB6强制应用程序通过注册的一个加载本地dll

时间:2018-04-11 13:13:35

标签: dll com vb6 manifest visual-studio-6

我的团队需要在同一台服务器上的两个不同文件夹中部署相同的应用程序,但代码略有不同。 我们想在文件夹A上有一个基本代码,在文件夹B上有一些更改的版本。

我试图了解这是否是我们在VB6中可以实现的目标,而这正是我目前正在进行的工作。

首先,我创建了一个类项目(Project2),其中包含一个类(Class1.cls):

Option Explicit

Public Function WeirdMath(Num1 As Double, Num2 As Double) As Double
    WeirdMath = Num1 + Num2
End Function

然后我创建了一个标准的exe项目(Project1),它将Project2作为参考。 在exe项目中,我创建了一个包含两个文本框的表单,一个标签和一个按钮。

Option Explicit

Private wm As New Class1

Private Sub Command1_Click()
    Dim Num1 As Double
    Dim Num2 As Double

    Num1 = IIf(IsNumeric(Text1.Text), Text1.Text, 0)
    Num2 = IIf(IsNumeric(Text2.Text), Text2.Text, 0)
    Label1.Caption = wm.WeirdMath(Num1 , Num2)
End Sub

我在文件夹\ bin1中构建了两个项目,并在该文件夹中注册了Project2.dll。 然后我将Class1.cls代码更改为

Public Function WeirdMath(Num1 As Double, Num2 As Double) As Double
    WeirdMath = Num1 - Num2
End Function

并在\ bin2文件夹中构建了两个项目以及此Project1.exe.manifest

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
    <assemblyIdentity name="Project1" version="1.0.0.0" type="win32"/>
    <file name="Project2.dll"/>
</assembly>

我希望 bin1 \ Project1.exe 能够得到两个数字的总和,而 bin2 \ Project1.exe 会有所不同。

它有意义吗? COM dll甚至可以这样工作吗?

0 个答案:

没有答案