gpt4 book ai didi

c# - 关于在 Visual Studio 2010 中将非托管 ActiveX OCX 与 VB 和 C# 语言一起使用时的区别?

转载 作者:行者123 更新时间:2023-11-30 22:33:06 30 4
gpt4 key购买 nike

我正在开发一种连接到 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 下初始化契约(Contract)接口(interface).

请看下图

a busy cat http://i.minus.com/i3VeHR0ppdKJu.jpg

最佳答案

Interop.Xxx.dll 程序集是 COM 服务器接口(interface)的 .NET 包装器。当您添加对 COM 组件的引用或手动运行 Tlbimp.exe 时,它​​会自动生成。

AxInterop.Xxx.dll 程序集是一个自动生成的 Winforms 控件(派生自 AxHost),允许您将 ActiveX 组件放在窗体上。当您将控件放在工具箱上或手动运行 Aximp.exe 实用程序时,它会自动生成。

到目前为止,处理此类控件的最简单方法是将其添加到工具箱中。然后让您只需将其拖放到设计器的表单上。这会自动添加所需的引用。右键单击工具箱,选择选择项。使用浏览选项卡并选择 OCX。或者从 COM 选项卡中选择它的条目。

关于c# - 关于在 Visual Studio 2010 中将非托管 ActiveX OCX 与 VB 和 C# 语言一起使用时的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8475699/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com