- - PR -
VBAからC#で作成したDLLのメソッドをコールすると実行時エラーになる
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-01-08 20:09
C#で作成したDLLのメソッドを、ExcelのVBAからコールしたいのですが、
メソッドコール後、"オートメーションエラーです" とのメッセージが表示されてしまうメソッドがあります。 発生したエラーを調べたところ、-2146233079となっており、 VisualStudioのエラー検索にも引っかかりませんでした。 トレースしてログを吐いてみたところ、メソッド内の処理は正常に 行われて、returnまで行っているようなのですが・・・ 下記がそのメソッドのパラメータと戻り値なのですが、 C#でref, outパラメータを指定すると、 VBAからコールし、復帰することはできないのでしょうか? /** このメソッドはコール後、正常に復帰する **/ public int AAA(byte[] a, int b, MyStruct[] c) // MyStructは定義した構造体 { <処理> } /** このメソッドはコール後、オートメーションエラー **/ public int BBB(byte[] a, out int b, ref MyStruct[] c) { <処理(パラメータに対する編集を含む)> } このような問題で困っております。 どなたかご存知でしたら、ご教授よろしくお願い致します。 | ||||
|
投稿日時: 2005-01-09 11:20
原則、out 属性の単体使用はできません。 とは言え、スカラ型の場合は動作してしまうはずなんですが、.NET の COM 連携はマーシャリングも複雑なので、駄目みたいですね。 _________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ |
1