で、そのライブラリを.NETでInteropして使用する別のアセンブリがあり、そのアセンブリを使うために、ActiveXをregsvr32して疎通確認してみたところ、想定外のエラーが出ており、困った状態になってしまいました。
幸い、暗号化のアルゴリズムはシンプルだったので、とりあえず開発を進めるために、ActiveXのライブラリに変わる処理を.NETで組んでダミーのアセンブリを生成し、Interopアセンブリを削除し、同フォルダにダミーのを置いてみましたが、うまくいきませんでした。
そこで、以下の2つを実施すると、なんと!!動いてしまいました。
- AssemblyInfo.csの[assembly: Guid("xxxxxx")]をInteropのものとあわせる(Reflector for .NET で確認)
- アセンブリファイル名をInteropのものとあわせる
もちろん、内部のクラスのインタフェースもReflectorで確認したとおりのクラスを実装する必要があります。
何かしらの処理を一時的に差し替えたりしたい場合、便利ですねぇ。
0 件のコメント:
コメントを投稿