.NETでCom Plus Interopサービスについてよくわかりません.Netにすべての汚い作業をさせてもらえます。まあ、今私は立ち往生しています。.NETのinteropからvb6オブジェクト型パラメータのパラメータを渡すと型の不一致が発生する
私のVS 2010 C#プログラムでVB6でコンパイルされたCOM DLLへの参照があります。これは私が作成している請求書です。
私がオブジェクトインスタンス化:
UIInvoice Invoice = new CUIInvoice();
をそして、私はいくつかの請求書のヘッダのプロパティを設定します。
Invoice.set_InvoiceType("VO");
Invoice.set_InvoiceTypeID(2);
そして今、私は呼び出すことで私はいくつかの請求書の明細行を、作成したいです請求書の子オブジェクトのメソッドを追加する:
Invoice.InvoiceDetails.Add("StringParam1", "StringParam2", Invoice);
関数の3番目のパラメータコールは私のVB6で定義されている機能を追加します。
ByRef Parent As Object
私は、.NETプログラムを実行すると、私は追加ラインを打ったとき、私は「型の不一致」エラーが発生します。
誰でも簡単に言えば、これを動作させる方法を提案できますか?
通常、C#では 'ref Invoice'と書いています。あなたはC#バージョン4を使用していると思います。それ以外は明らかですが、CUIInvoiceが親であることが気に入らないだけです。たぶん "UI"のため。 –
こんにちはハンス、あなたの返事をありがとう。 Invoiceオブジェクトをrefで渡すと、実際にはコンパイラエラーが発生します。これはもっと知識のある人にはヒントになる可能性があります。 'ref UIInvoice.CUIInvoice'から 'refオブジェクト'に変換できません。オブジェクトtemp = Invoiceのように静的オブジェクト型を宣言すると、 refでtempを渡すと、同じ型の不一致エラーが発生します。 – user529703
UIInvoiceとCUIInvoiceの違いは何ですか?請求書を次のように宣言するとどうなりますか?CUIInvoice請求書=新しいCUIInvoice(); –