none
VB .NET でCOMサーバー RRS feed

  • 質問

  • tom3.1063と申します。

     

    VB .NET 2003 作成されたプログラムを、他の言語(今回の場合COBOL)で作成されたアプリから呼び出されるために、COBOL側の仕様上、.NETプログラムをCOMサーバーに仕立てる必要があるようです。その目的に沿った事例ページ等があればご紹介ください。今回のケースを具体的に言うと、一覧紹介画面(COBOL)から特定の明細を選択し、詳細紹介画面(VB .NET)を参照モードで呼び出すといった具合です。
    以上よろしくご教授くださいませ。

    2006年8月11日 7:31

すべての返信

  • 諸農です。

    こちらのドキュメントが参考になるかと思います。

    .NET Framework 開発者ガイド「高度な COM 相互運用性」
    http://msdn2.microsoft.com/ja-jp/library/bd9cdfyx.aspx

    COM相互運用機能の利用
    http://codezine.jp/a/article.aspx?aid=429

    もしかしたらCOBOL呼出の事例は案外多かったりするのかもしれませんが、個人的にはあまり聞いたことがないです。

     

    2006年8月11日 8:36
  • お書きなった事から推察するに、.NETのWindows Formで造ったコントロールをCOBOL上からOCX(ActiveXコントロール)として使いたいと読めるのですが、それに関してはほぼ無理です。

    .NETを使ってUI無しのActiveX DLLを造ることは出来ますが、UI付いたCOM DLLであるActiveXコントロールを造ることは出来ません。少なくともVisual Basicでこれをやることは無理だと思います。仕様上そうだと思っていただいてかまいません。

    .NETのWindows Form上でActiveXコントロールが使用できるのは、それを可能にする仕組みがWindows Form側にあるからなのですが、そのCOBOLの処理系にこれと同じような.NET のWindows Formで造られたコントロールをホストする機能が無ければ、VB.NETで造ったコントロールをCOBOLのプログラムから使用することは出来ません。

    2006年8月14日 10:35
  • ishisaka 様、ご教授ありがとうございます。

    私の説明不足でした。.NETのWindows Formで造ったコントロールをCOBOL上からOCX(ActiveXコントロール)として使いたいということではありません。

    .NETのWindows Formで作ったFormを呼び出す機能をもつCOMを作り、COBOLから呼び出すという意味です。

    VB6であれば対象のCOMを参照設定し、CREATEOBJECTで呼ぶようなイメージをCOBOLで行なおうとしております。

    Kazutaka Morono様が教えてくださった、

    COM相互運用機能の利用
    http://codezine.jp/a/article.aspx?aid=429

     

    を勉強してみようと思っております。

     

    今回は私の説明不足で紛らわしかったと反省しております。またのご指導よろしくお願いいたします。

    2006年8月21日 7:06
  • Kazutaka Morono様、ご教授ありがとうございます。

     

    COM相互運用機能の利用
    http://codezine.jp/a/article.aspx?aid=429

    が私の目的のイメージに近いかと思います。

    これから勉強して具現化してみようと思います。まずはご報告まで。このたびはありがとうございました。

    2006年8月21日 7:08
  •  

    Kazutaka Morono様のご教授いただいた下記記事を参考にプロトタイプの製作を行なっております。その上で、COMクライアントから文字列の引渡し(受け)を行なうにはどのような記述が必要なのか、どなたかご教授いただければ幸いです。

    再三お手数ですが、よろしくお願いいたします。

    COM相互運用機能の利用
    http://codezine.jp/a/article.aspx?aid=429

    2006年8月22日 9:33