VB6 SET语句 - 是否应该在外部DLL中实际执行代码?

时间:2017-06-14 03:33:07

标签: vb6

我有一个VB6 Exe和一个V6 DLL这两个通常都可以正常工作但是随着DLL的新改编它导致我的问题,因为DLL内部代码实际上正在执行 - 这搞乱了我的应用程序 - 但我是不确定这是否真的是正确的行为。

代码的VB6 Exe部分如下;

Set Scanner = New Devices.Scanner

  If Scanner.SupportedDevicesCount > 0 Then
  Dim i As Long

  For i = 1 To Scanner.SupportedDevicesCount
      With Scanner.SupportedDevicesInfo(i)
          If .Available = True Then
  ..
  ..

在外部DLL中有以下代码;

Public Property Get SupportedDevicesInfo(ByVal Index As Long) As DeviceInfo
  On Error Resume Next
  SupportedDevicesInfo = mSupportedDevices(Index).DeviceInfo
End Property

我的问题是这个SupportedDevicesInfo正在执行"两次"我无法理解为什么。

它在Set Scanner = New Devices.Scanner执行一次,然后在Scanner.SupportedDevicesInfo(i)

再次执行

这导致在设备上发生各种内部功能,即

Private Function IScanDevice_OpenDevice() As Scan_ResultCodes

在调用之前不应该发生。

希望对此有所帮助。 感谢

0 个答案:

没有答案