首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >COMException在System.WIndows.Forms.dll中的交互代理TWS

COMException在System.WIndows.Forms.dll中的交互代理TWS
EN

Stack Overflow用户
提问于 2010-05-12 00:08:16
回答 1查看 3.7K关注 0票数 0

我一直在尝试运行该教程提供的样例项目,但每次运行应用程序时,我都会得到一个COMException。

我已经运行了TWS客户端,API提供的示例VB项目能够很好地连接,但是当我尝试使用本教程提供的C#示例时,我会得到以下例外:

'System.Runtime.InteropServices.COMException‘类型的未处理异常发生在System.Windows.Forms.dll中

当我试图添加TWS ActiveX控件时,会发生异常:

代码语言:javascript
复制
namespace CSharpTutorial1
{

    public partial class Form1 : Form
    {
        private AxTWSLib.AxTws tws;
        public Form1()
        {
            InitializeComponent();         
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            tws = new AxTWSLib.AxTws();
            tws.BeginInit();
            tws.Enabled = true;
            tws.Location = new System.Drawing.Point(32, 664);
            tws.Name = "tws";
            Controls.Add(tws); // <-- EXCEPTION HERE!
            tws.EndInit();
            tws.connect("127.0.0.1", 7496, 0);
            String msg = "Connected to TWS server version " + tws.serverVersion + "at " + tws.TwsConnectionTime;
            MessageBox.Show(msg);
        }
    }
}

最初的项目可能是用Visual 2005完成的,但是我有Visual 2008,它会自动转换该项目(我一直在阅读那里有一些问题)。有人知道是什么导致了这一异常吗?有什么解决办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-03 15:21:01

  1. 重要:确保使用可视化设计器将组件添加到IDE中。首先在工具箱中右击,单击“选择项”,单击COM选项卡,然后检查TWS控件。现在,使用可视化IDE将此项拖到窗体的表面。它必须在您的应用程序中可见。(不要在Form1_Load())
  2. Do中创建类似这样的.(不要使用IP地址127.0.0.1,保留为空):

代码语言:javascript
复制
axTws1.connect("", 7496, 0);
axTws1.reqMktData(0, "AMD", "STK", "", 0, "", "", "SMART", "ISLAND", "USD", "", 0);

  1. Last (如果您使用64位Windows),用32位代码编译该项目。转到配置管理器,然后创建一个新配置文件"x86“,并将所有配置设置为x86.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2815298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档