C++ COMサーバーとC# COMクライアント

| コメント(0) | トラックバック(0)
企むことがあってCOMの学習中。

既に廃れつつあって参考書が少ない中、いきなりアウトプロセスのサーバーに挑戦です。

32ビットしか提供されていないアンマネージドDLLを、64ビットのマネージドアプリから使う必要があり、32/64相互運用はアウトプロセスCOM経由が一つの方法だと目にしたもので。

CodeGuruにC++で記述したアウトプロセスサーバーのサンプルがありました。Windows SDKのDCOMサンプル"Simple"よりわかりやすいと思います。

またMSDNにC#クライアントの解説がありました。

IDLファイルがあればタイプライブラリのTLBファイルが作られるので、tlbimpしてアセンブリファイルを作り、参照設定から「参照の追加」してやれば良いとわかりました。

コードはこうなりました。

namespace CSClient
{
    class Program
    {
        static void Main(string[] args)
        {
            Server.MiniDcom d = new Server.MiniDcom();
            Server.IDouble id = (Server.IDouble)d;
            int r0, r1;
            r0 = 10;
            r1 = id.Double(r0);
            Console.WriteLine(r0 + "->" + r1);
        }
    }
}

トラックバック(0)

トラックバックURL: http://mychro.mydns.jp/cgi-bin/mt/mt-tb.cgi/218

コメントする

アーカイブ

ウェブページ

Powered by Movable Type 5.2.13

ホームページ