JACOB(Java COM Bridge)ライブラリを使用して、Windows OSから登録済みCOMオブジェクトを呼び出しています。 JACOBの仕組みを理解し、すべてをセットアップするまでには、しばらく時間がかかりました。私が電話をかけたい場合はC#JACOBで書かれた自己生成され、登録されたCOMオブジェクトは、次のエラーを応答例えばJACOBライブラリの有効なCOM構造体とは何ですか?
ActiveXComponent comp = new ActiveXComponent("iTunes.Application");
の作品、私のiTunesがなど 正常に起動:
Exception in thread "main" com.jacob.com.ComFailException: Can't co-create object
だから、私の現在の問題は、ということです私のiTunesはJACOBは、現在、私は、ビルド・レジスタにVisual Studio 2015を使用しています自分の.dll
を呼び出すことはできませんなぜ、すべてが私はわからないんだけど、右に設定されていることを私のための指標とした始めたと
pを働かせたCOM相互運用機能用私のために過去の良いretty良い。 COMオブジェクトは、次のようになります。
[Guid("EAA4976A-45C3-4BC5-BC0B-E474F4C3C83F")]
public interface ComClass1Interface
{
}
[Guid("7BD20046-DF8C-44A6-8F6B-687FAA26FA71"), InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface ComClass1Events
{
}
[ComVisible(true)]
[Guid("0D53A3E8-E51A-49C7-944E-E72A2064F938"), ClassInterface(ClassInterfaceType.None), ComSourceInterfaces(typeof(ComClass1Events))]
[ProgId("test.Application")]
public class ComClass1 : ComClass1Interface
{
}
は、私のC#のDLLに何か問題ですかJACOBは、このDLL内の構造の特定のタイプを必要としていますか?
残念ながら、JACOBのCOMの例は見つかりませんでした。
ありがとうございます。
EDIT:
私は私の最初の行を変更した場合:
ActiveXComponent comp = new ActiveXComponent("CLSID:{C9888A8E-8D23-4185-9D7D-A1E0B812803D}");
私は次の例外取得しています:私の.dll
Exception in thread "main" com.jacob.com.ComFailException: Can't find moniker
はしかし登録する必要があります。