【问题标题】:Bloomberg DDE Error when called from Python从 Python 调用时出现 Bloomberg DDE 错误
【发布时间】:2012-03-07 13:06:09
【问题描述】:

我正在尝试使用 DDE 向彭博终端发送命令。 例如:显示我可以发送的 Microsoft 页面:

<blp-1><CANCEL><CANCEL><HOME>MSFT<EQUITY><GO>

使用 EXCEL 中的 VBA 库可以正常工作。但是我试图从 Python 脚本中做同样的事情。我正在使用此处的代码(由于某些限制,我无法使用更标准的 win32ui/dde python 模块)

http://code.activestate.com/recipes/577654-dde-client/

消息正在传递到彭博终端,但没有被正确解释,例如:

de = DDEClient('WinBlp', 'bbk')
de.execute('<blp-1><CANCEL><CANCEL><HOME>MSFT<EQUITY><GO>')

会弹出一个 Bloomberg 窗口,但在命令区域中出现乱码,类似于

????A?????

有人像这样吗?

【问题讨论】:

  • 您的组织为此服务支付了巨额费用。我希望您还要求彭博社对您的错误发表评论。
  • 如果您要求帮助人员帮助您解决 DDE 问题,您能想象他们会说什么吗?
  • @ashbyp HELPHELP 通常很好 - 如果对方显然不明白您在说什么(可能会发生),请再试一次或要求转发给 API 团队,他们会非常有帮助。

标签: python dde bloomberg


【解决方案1】:

解决方法是改变这一行

初始化 = get_winfunc("user32", "DdeInitializeW", UINT, (LPDWORD, DDECALLBACK, DWORD, DWORD))

Initialize = get_winfunc("user32", "DdeInitializeA", UINT, (LPDWORD, DDECALLBACK, DWORD, DWORD))

来自此处的 MS 文档:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms648757(v=vs.85).aspx

DdeInitializeA 是 ANSI 版本的初始化程序,而不是 unicode。

【讨论】:

    猜你喜欢
    • 2017-06-11
    • 1970-01-01
    • 2017-01-28
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    相关资源
    最近更新 更多