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