2

64 ビット マシンに切り替えて Visual Studio 2012 の使用を開始するまで、以前の Bloomberg Data Type Libary (blpdatax.dll) を C# で正常に使用していました。今では、BlpData インターフェイスでメソッドを呼び出そうとするたびに結果が返されます。アクセス違反です。

追加情報:

私のターゲット マシン タイプは x86 です。

Bloomberg Data Type Library を使用する 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 を使用することであることはわかっていますが、現時点ではその選択肢がありません。どんな助けでも大歓迎です。

4

1 に答える 1

0

試行錯誤はありましたが、V3 API は思ったより使いやすかったです。しかし、ActiveX コントロールの何が問題なのか知りたいと思っています。

于 2013-04-15T00:26:29.633 に答える