一段时间以来,我一直在 C# 中成功使用旧的 Bloomberg 数据类型库 (blpdatax.dll),直到我切换到 64 位机器并开始使用 Visual Studio 2012。现在每次尝试调用 BlpData 接口上的方法都会产生结果在访问冲突中。
附加信息:
我的目标机器类型是 x86。
使用 Bloomberg 数据类型库的 Perl 脚本继续正常工作。
其他使用第三方 32 位 COM 对象引用的 C# 程序也可以正常工作。
这是代码。异常发生在订阅调用并被描述为 Win32 异常(访问冲突)。
void Test()
{
BlpData blp = new BlpData();
blp.ActivateRealtime = false;
object res;
object symbols = "ADX US Equity";
object fields = "PX_LAST";
object start = new DateTime(2013, 1, 1);
object end = new DateTime(2013, 1, 31);
int cookie = 0;
blp.Subscribe(symbols, cookie, fields, Type.Missing, Type.Missing, out res, Type.Missing);
object[,] result = (object[,])res;
Console.WriteLine(result[0,0].ToString());
}
我知道长期的解决方案是使用更新的 Bloomberg API,但目前我没有这个选择。任何帮助,将不胜感激。