Vb.net Visual Basic Sterling ActiveX错误
我是VisualBasic新手,我正在编写的程序有问题。我正在使用Sterling ActiveX库创建一个基本的功能程序,为Sterling Trader软件执行一项简单的任务(发送订单)。我只是想做一些基本的东西,我可以用它来做。以下是我目前的代码:Vb.net Visual Basic Sterling ActiveX错误,vb.net,visual-studio-2010,activex,Vb.net,Visual Studio 2010,Activex,我是VisualBasic新手,我正在编写的程序有问题。我正在使用Sterling ActiveX库创建一个基本的功能程序,为Sterling Trader软件执行一项简单的任务(发送订单)。我只是想做一些基本的东西,我可以用它来做。以下是我目前的代码: 导入斯特林库 公开课表格1 Dim WithEvents m_STIEvents As STIEvents Private Declare Sub GetLocalTime Lib "kernel32" (ByRef lpSystemTi
导入斯特林库
公开课表格1
Dim WithEvents m_STIEvents As STIEvents
Private Declare Sub GetLocalTime Lib "kernel32" (ByRef lpSystemTime As SYSTEMTIME)
Private Structure SYSTEMTIME
Dim wYear As Short
Dim wMonth As Short
Dim wDayOfWeek As Short
Dim wDay As Short
Dim wHour As Short
Dim wMinute As Short
Dim wSecond As Short
Dim wMilliseconds As Short
End Structure
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
m_STIEvents = New STIEvents
End Sub
Private Sub m_STIEvents_OnSTIOrderUpdateMsg(ByVal oSTIOrderUpdateMsg As SterlingLib.STIOrderUpdateMsg) Handles m_STIEvents.OnSTIOrderUpdateMsg
Dim order As STIOrder
order = New STIOrder
Dim storder As structSTIOrder
storder.bstrAccount = "ACCT7"
storder.bstrSide = "B"
storder.bstrSymbol = "CSCO"
order.Quantity = "500"
storder.bstrStrPriceType = SterlingLib.STIPriceTypes.ptSTIMkt
storder.bstrTif = "D"
storder.bstrDestination = "NYSE"
Dim theTime As SYSTEMTIME
GetLocalTime(theTime)
storder.bstrClOrderId = storder.bstrAccount & theTime.wYear & theTime.wMonth & theTime.wDay & theTime.wHour & theTime.wMinute & theTime.wSecond & theTime.wMilliseconds
Dim ret As Integer
ret = order.SubmitOrder
End Sub
Private Function Text1() As Object
Throw New NotImplementedException
End Function
末级
运行此程序时,出现以下错误:
应用程序中出现未处理的异常。如果单击“继续”,应用程序将忽略此错误并尝试继续。如果单击“退出”,应用程序将立即关闭
由于以下错误,检索CLSID为{5E89F49B-6A12-420F-8570-E510EF1B580A}的组件的COM类工厂失败:800700c1。“
这是什么意思?我如何纠正它?当我调试时,它会突出显示“m_STIEvents=New STIEvents”作为出错的行,但我无法找出它。您可以对错误代码0x800700c1进行反向工程。如果不是通过谷歌,那么是通过设计。8表示它是一个错误。7是“设施代码”,错误源于此,7表示Windows。这使得最后4位数字成为Windows错误代码。0x00c1=错误193。可以通过多种方式查找,其中一种是通过查看Windows SDK的WinError.h文件:
//
// MessageId: ERROR_BAD_EXE_FORMAT
//
// MessageText:
//
// %1 is not a valid Win32 application.
//
#define ERROR_BAD_EXE_FORMAT 193L
这种错误代码总是在64位操作系统上生成。运行64位代码并尝试加载旧式32位ActiveX组件
这建议了一个简单的解决方案:在解决方案资源管理器窗口中右键单击您的EXE项目。属性、编译选项卡、向下滚动、高级编译选项按钮。将目标CPU设置更改为“x86”,强制VB.NET代码以32位模式运行,以便加载ActiveX控件。或者,如果它已经设置为x86,则将其更改为“AnyCPU”,以解决这是一个64位ActiveX控件的奇怪情况
如果这不起作用或您有任何其他问题,请与组件供应商联系。您可以对错误代码0x800700c1进行反向工程。如果不是通过谷歌,那么是通过设计。8表示它是一个错误。7是“设施代码”,错误源于此,7表示Windows。这使得最后4位数字成为Windows错误代码。0x00c1=错误193。可以通过多种方式查找,其中一种是通过查看Windows SDK的WinError.h文件:
//
// MessageId: ERROR_BAD_EXE_FORMAT
//
// MessageText:
//
// %1 is not a valid Win32 application.
//
#define ERROR_BAD_EXE_FORMAT 193L
这种错误代码总是在64位操作系统上生成。运行64位代码并尝试加载旧式32位ActiveX组件
这建议了一个简单的解决方案:在解决方案资源管理器窗口中右键单击您的EXE项目。属性、编译选项卡、向下滚动、高级编译选项按钮。将目标CPU设置更改为“x86”,强制VB.NET代码以32位模式运行,以便加载ActiveX控件。或者,如果它已经设置为x86,则将其更改为“AnyCPU”,以解决这是一个64位ActiveX控件的奇怪情况
如果这不起作用或您有任何其他问题,请与组件供应商联系。我不知道您是否已解决此问题。我解决这个问题的方法是在我的电脑上安装vb6。我尝试了所有其他的方法,但没有一个奏效。这个API非常旧。安装vb6解决了我的问题。此外,如果你想让程序工作,你必须登录sterling trader pro。祝你好运。我不知道你是否解决了这个问题。我解决这个问题的方法是在我的电脑上安装vb6。我尝试了所有其他的方法,但没有一个奏效。这个API非常旧。安装vb6解决了我的问题。此外,如果你想让程序工作,你必须登录sterling trader pro。祝你好运。我没有和你描述的完全一样的选择。有一个选项是“目标框架(所有配置):”我的选项是:.NET framework 2.0、.NET framework 3.0、.NET framework 3.5、.NET framework 3.5客户端配置文件、.NET framework 4.0、.NET framework 4客户端配置文件,并安装其他框架。是这样吗?我该选哪一个?你找错了。使用“编译”选项卡,如答案中所述。向下滚动找到“高级编译选项”按钮。我没有与您描述的完全相同的选项。有一个选项是“目标框架(所有配置):”我的选项是:.NET framework 2.0、.NET framework 3.0、.NET framework 3.5、.NET framework 3.5客户端配置文件、.NET framework 4.0、.NET framework 4客户端配置文件,并安装其他框架。是这样吗?我该选哪一个?你找错了。使用“编译”选项卡,如答案中所述。向下滚动找到“高级编译选项”按钮。