1

我是 Visual Basic 的新手,我遇到了一个错误。我正在尝试编写一个最终将由 Sterling Trader(股票交易软件)运行并在其中运行的程序。我正在尝试按照 activeX API 指南的说明来包含对库的引用。以下是指南所说的:

创建对 Sterling ActiveX 库的引用 - 从菜单中选择项目 ---> 引用.... - 从可用引用中选择 Sterling 1.0 类型库。- 如果未找到 Sterling 1.0 类型库,请选择浏览并找到 Sterling.tlb 文件。

启用事件 - 将以下行置于代码的常规部分以声明对象:复制代码

Dim WithEvents m_STIEvents 作为 STIEvents

  • 将以下行置于初始化过程中,例如 Form_Load 过程:复制代码

设置 m_STIEvents = 新 STIEvents

  • 现在在代码窗口的 Object 下拉控件中选择 m_STIEvents(左上角下拉控件)。您将在“过程”下拉控件(右上角的下拉控件)中看到可用的事件。选择您想要捕获的事件,它将被插入到您的代码中。它应该看起来像这样:复制代码

Private Sub m_STIEvents_OnSTIOrderUpdateMsg(ByVal oSTIOrderUpdateMsg As ISTIOrderUpdateMsg)

  • 使用 oSTIOrderUpdateMsg 对象从消息中收集信息。

但是,由于某种原因,我在 Visual Basic 2010 中遇到了错误(该指南必须是过时的)。所以基本上,我盲目地跟随 Intellisense 将我的代码更改为我希望能工作的东西。这是我的代码:

折叠 | 复制代码

Public Class Form1

Dim WithEvents m_STIEvents As SterlingLib.STIEvents

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

   m_STIEvents = New SterlingLib.STIEvents

End Sub

End Class

现在,我只是尝试启动并运行一个已成功包含该库的基本程序。但是,当我运行它时,我收到以下错误消息:

“由于以下错误,检索具有 CLSID {5E89F49B-6A12-420F-8570-E510EF1B580A} 的组件的 COM 类工厂失败:80070002 系统找不到指定的文件(来自 HRESULT 的异常:0x80070002)”

如果我单击继续,程序将运行并显示基本窗口。我在网上根本找不到任何有关如何执行此操作的信息,请帮助!

谢谢

4

2 回答 2

0

您必须登录 sterling pro 才能使程序正常工作。还安装VB6 将解决COM 问题。这个 API 太旧了。英镑懒得更新了。

于 2013-11-13T04:15:36.720 回答
0

我有类似的东西。我关闭了 Windows UAC,错误消失了

见错误列表

http://web.archive.org/web/20100126001718/http://blogs.msdn.com/joshpoley/pages/errors-007-facility-win32.aspx

.NET 3.5 ActiveX dll InteropServices.COMException

于 2012-12-05T05:08:29.820 回答