豚吐露@wiki

CS側からVBの資産を利用する

最終更新:

Bot(ページ名リンク)

- view
管理者のみ編集可

CS側からVBの資産を利用する

Windows 7 Professional
Visual Studio 2013 Professional

例として、VB.NetでVBAppというprojectを、C#でVCAppというprojectを作成。

VB側にPublicClassというclassを作って、Sumというstatic(Shared) methodを定義。buildしてexeを作っておく。
今回は、わざっと別ソリューションにして、exeしか無いって状況ね。(=´▽`=)b

e.g.) VB.Net側に定義したmethod
  1. Public Class PublicClass
  2. Public Shared Function Sum(num1 As Integer, num2 As Integer) As Integer
  3. Return num1 + num2
  4. End Function
  5. End Class

C#側では、最初に参照設定が必要。
『参照設定』を右クリックして、『参照の追加』を選択。

ダイアログが開いたら『参照』ボタンを押下。使いたい資産を持ってるexeなどを指定。今回は『VBApp.exe』。
※同一ソリューション内の他projectの場合は、左のリストから『ソリューション』を指定して、対象のprojectを指定するだけでOK。
追加すると、一覧に追加したものの情報が追加される。
で、checkが入ってることを確認して『OK』ボタン押下。

参照設定に、さっき追加したVBAppがぶら下がってるのを確認できる。ココに表示される名前で呼び出すので、なんて名前で表示されてるか把握しとくこと。

実際に呼び出してみる。
ポイントは6行目。『using Microsoft.VisualBasic;』と宣言すると、参照設定してるVB側の関数とかがそのまま使える。
VB.Netのmethodはstaticで定義してるので、14行目のように直接呼び出せる。
見ての通り、『参照設定に追加した名前.クラス名.メソッド名』で呼び出せてる。
コーディングするときは、ちゃんと候補が表示されたりするので、いたせりつくせりです。

e.g.) C#側に定義したVB.Net側のmethodを呼び出すところ
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Microsoft.VisualBasic;
  7.  
  8. namespace CSApp
  9. {
  10. class Program
  11. {
  12. static void Main(string[] args)
  13. {
  14. Console.WriteLine(VBApp.PublicClass.Sum(1, 2));
  15. }
  16. }
  17. }

コンソールには『3』が表示されました。



更新日: 2014年12月12日 (金) 16時14分06秒

名前:
コメント:

すべてのコメントを見る
記事メニュー
ウィキ募集バナー