C#相談室

このエントリーをはてなブックマークに追加
186デフォルトの名無しさん
C#で書いて作ったDLLをEXCELやACCESSから呼び出して使うことは出来ますか?
187名無しさん♯:2001/04/08(日) 01:28
>>186
もちろんできるよん。ちょっとめんどいけど。

sn.exeでキーペアを作って、DLLに埋め込む。
DLLをGlobal Assembly Cacheにインストールする。
あとはregasm.exeでCOMに登録する。

これで "namespace名.class名" でCreateObjectできるはず。
188デフォルトの名無しさん:2001/04/08(日) 16:40
>187
うう。サパーリわかんない。。。(T_T)

よろしければ、もう少し具体的なコマンドの手順を教えてくださいませんか。 > ♯さん
189VB厨房@MCSD:2001/04/09(月) 01:07
>>188
顔文字キモイ(w
もしや COM DLL じゃなくてって奴?
(COMの利用方法は.NETでも変更ナシ)
190名無しさん♯:2001/04/09(月) 20:29
>>188 了解♪

1. 適当にクラスを作る。(hoge.cs)

  namespace AAA
  {
    public class BBB
    {
      public string CCC() {
        return "イッテヨシ";
      }
    }
  }

2. キーペアを作る。(hoge.snk)

  sn /k hoge.snk

3. ソースをコンパイルして、キーペアを埋め込んだDLLを作る。(hoge.dll)

  csc /t:library /a.keyfile:hoge.snk hoge.cs
191名無しさん♯:2001/04/09(月) 20:30
4. Global Assembly Cache に登録。

  gacutil /i hoge.dll

  (エクスプローラの C:\Winnt\Assembly\Donwload に hoge.dll を
   ドラッグドロップしても可。)

5. COM DLLとして登録。

  regasm hoge.dll

これで終了。

あとはVBAなりWSHで呼び出せるよ。

  Public Sub Test()

    Dim hoge

    Set hoge = CreateObject("AAA.BBB")
    MsgBox hoge.CCC
    Set hoge = Nothing

  End Sub
192名無しさん♯:2001/04/09(月) 20:33
間違えた。

> エクスプローラの C:\Winnt\Assembly\Donwload に

 エクスプローラの C:\Winnt\Assembly に