Professional OPC
Development Tools

logos

VB6 Intellisense / Early Binding Problem

More
12 Apr 2016 19:02 #3986 by jgyenese
This has nothing to do with early/late binding as it is a compiled language.

Please Log in or Create an account to join the conversation.

More
12 Apr 2016 08:22 #3982 by eldoraman
The Early Binding just means that the target method is found at compile time while in Late Binding the target method is looked up at run time. Most script languages use late binding, and compiled languages use early binding. More about..... Early Binding and Late binding

Eldo

Please Log in or Create an account to join the conversation.

More
22 Jul 2013 19:57 #1358 by jgyenese
I'm glad to hear it is working as designed and not a problem with my computer.

Thank you for the fast response.

Please Log in or Create an account to join the conversation.

More
22 Jul 2013 19:41 #1357 by support
This is actually by designed, however weird that may seem.

The reason for it is that we have tested with wide range of automation controllers, and we have found some with severe limitations, and restricted the API to the lowest common denominator. For this reason, in the IDL definition, many arguments/properties are defined simply as VARIANT, not as the actual interface or object, and that's why VB6 IntelliSense isn't able to tell you more, and late binding is necessary. The VARIANT contains the object as described in the documentation, but it has to be manually filled in or type-casted.

Without this, the component won't be usable in some tools at all. So, we had to trade the efficiency and beauty of the design, for the fact that it does work in wider range of languages and tools.

Best regards,
Zbynek Zahradnik
The following user(s) said Thank You: jgyenese

Please Log in or Create an account to join the conversation.

More
22 Jul 2013 18:04 #1356 by jgyenese
I am using QuickOPC-COM for the first time to update one of our older VB6-based apps to use the superior QuickOPC product instead of the previous lousy OPC product we had used from another vendor. However, I am having some trouble getting started. When I define an EasyDAClient object I can only access first level methods/properties - anything deeper than that are not recognized and therefore will be late-bound when the compiled application is run.

Here is a way to duplicate what is happeining:

1. Create a new VB6 Standard EXE project.
2. Add "OPC Labs EasyOPC Type Library" reference.
3. In Form_Load add the line "Dim da As New EasyDAClient"

I would like to set the data source to be "Cache" so I begin typing the following:
"da." - after typing the "." intellisense brings up a list of options including "ClientMode" which I select. Now I have "da.ClientMode." but rather than get a list of ClientMode properties, I get a beep indicating intellisense is not aware of any methods/properties beneath this level.

This is odd, because I can define a variable like this: "Dim cm As EasyDAClientMode" and "Set cm = da.ClientMode" then see the ClientMode properties by typing "cm." and viewing the list which include "DataSource". However, even now I cannot select DataSource and add a "." because I once again get the beep indicating VB doesn't know anything about the DataSource property.

VB does not seem able to find any methods/properties more than 1 layer deep in the EasyOPC objects.

Am I doing something wrong?

Window 7 x64
VB6 SP6 run as Administrator
QuickOPC version 5.22

Please Log in or Create an account to join the conversation.

Moderators: support
Time to create page: 0.173 seconds

      

 Recommend this on Google