2013-04-14 2 views
2

Я уже некоторое время использовал старый тип данных Bloomberg Data Libary (blpdatax.dll) в C#, пока не перешел на 64-разрядную машину и не начал использовать Visual Studio 2012. Теперь каждая попытка вызов метода на интерфейсе BlpData приводит к нарушению доступа.Библиотека типа данных Bloomberg в C#

Addtional информация:

Мой целевой тип машины x86.

Perl-скрипты, использующие библиотеку типов данных Bloomberg, продолжают работать нормально.

Другие программы на C#, содержащие ссылки на сторонние 32-разрядные COM-объекты, также работают нормально.

Вот код. Исключение происходит при вызове Subscribe и описывается как исключение 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, но на данный момент у меня нет такого выбора. Любая помощь будет оценена по достоинству.

ответ

0

API V3 оказался более простым в использовании, чем я думал, хотя в нем участвовали некоторые ошибки и ошибки. Но мне все еще интересно узнать, в чем проблема с элементом управления ActiveX.