简体   繁体   中英

Calling .Net Classes from Visual Basic 6

We have a .Net DLL. We need to call this DLL from a VB Application. What are the procedures we need to follow?

The last time I did this, it got so thorny (some irrelevant issues involving COM+, deployment, etc tripping us up) that I actually ditched the COM boundary, and re-wrote the interface as a POX web-service talking to a handler (ashx) in the .NET. I would give serious consideration to this approach... (unless you need to share windows handles, or similar)


If you really want a COM API, you need to generate a COM-callable wrapper; this is largely a case of:

  • ensuring the necessary types / methods are public
  • marking the assembly / types as [ComVisible(true)]
  • using tlbexe to export the type library if you need
  • using regasm to register the type in COM (either in the GAC or from a fixed location on a drive)

After that your VB6 should just see it as another COM package, but I strongly recommend that you limit this interface to the bare minimum; it isn't change-friendly, and the VB6-style interface forwarding (ie where you can get away with adding a method, without breaking binary compatibility) is not here.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM