I am working on an old VB6 app and have recently added the Siemens OPC component. When running in VB6 debugger I have no problems.
I then created a deployment package (Siemens OPC dlls included in the package) and deployed the app on the same PC. I then get the following error message when accessing the OPC object:
‘Method ~ of object ~ failed’
Can anyone suggest what might be causing this or what I can do to get more information?
UPDATE
I am aware of other questions around this error message. What is puzzling me here is that there are no problems when using the VB debugger. The problems occur after deployment – even on the same machine. I would have thought that all the components remain registered and available.
CODE
Public Sub InitialiseOPC(ServerIP As String, OpcServerName As String, BaseAddress As String)
On Error GoTo ProcError
IsInitialised = False
Set MyOpcServer = New OPCServer
Dim LocalServers
LocalServers = MyOpcServer.GetOPCServers(ServerIP)
....
The error occurs when GetOPCServers is called. This is the first time the OPC component is accessed.
Is there any way to trace what VB is doing at this time (e.g. dll loading) ?
UPDATE
I tried deploying the Siemens dlls to the application folder instead of the default locations and this error message no longer appears.
Method ~ of object ~ failedis generated when an exception (SEH) is thrown during a late-bound call. VB6 makes the effort to “wrap” each late-bound call to catch such unexpected behavior.In your case most probably a VC component is trying to load a dependent DLL or COM object and fails but does not handle the failure gracefully. Instead it tries to call a method on the empty reference and bombs with an Access Violation or similar exception.