我有一个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
在调用之前不应该发生。
希望对此有所帮助。 感谢