我正在开发一个交易软件,它连接到Interactive Brokers的ActiveX API。
Interactive Brokers提供了一个VB示例程序,它使用ActiveX与我安装的软件进行通信,并且必须登录。我检查了VB示例的结构,这个结构并不复杂,以至于添加了已注册的ActiveX“TWS.OCX” 。当我检查示例的引用时,结构是这样的。我们有两个:Interop.TWSLib和AxInterop.TWSLib,我注意到这个例子使用
Public WithEvents Tws1 As AxTWSLib.AxTws
使用后者启动。 请查看VB中的图片示例,它有两个交互式代理相关对象或参考准备使用:
a busy cat http://i.minus.com/inIxvP1TUi2gt.jpg
现在我尝试使用C#语言连接ActiveX OCX。我很快在COM参考列表下找到了Interop.TWSLib,但是我没有找到AxInterop.TWSLib的地方了!!由于AX的名字,我猜这意味着它意味着将非托管ocx转换为托管的ocx用于c#或vb。但我怎么能在c#下得到这个呢? 实际上,我已经在Interop.TWSLib中使用了一些方法和事件,但现在我无法创建所谓的CONTRACT实例,我发现VB示例只是在AxInterop.TWSLib下使用createContract而不是在Interop.TWSLib下使用合同接口的初始化
请查看下面的图片
答案 0 :(得分:3)
Interop.Xxx.dll程序集是COM服务器接口的.NET包装程序。当您添加对COM组件的引用或手动运行Tlbimp.exe时,它会自动生成。
AxInterop.Xxx.dll程序集是一个自动生成的Winforms控件(派生自AxHost),允许您将ActiveX组件放在表单上。当您将控件放在工具箱上或手动运行Aximp.exe实用程序时,它会自动生成。
到目前为止,纠缠这种控件的最简单方法是添加到工具箱中。然后,您可以使用设计器将其拖放到表单上。这会自动添加所需的引用。右键单击工具箱,选择“选择项目”。使用“浏览”选项卡并选择OCX。或者从COM选项卡中选择其条目。