3

このコードをC#.NET Framework 3.5に変換しようとしていますが、そのバージョンは遅延バインディングに対応していません。4.0を使用している場合は動的タイプを使用しますが、現時点ではそれはオプションではありません。

複雑なのは、私が本当に作成したいオブジェクト(atl3270Tool)がパラメーター内に作成されることです。助けていただければ幸いです。

Dim atl3270Tool
Dim ErrMsg As String
Dim S_OK As UInt16 = 0
Dim atlDirectorObject = CreateObject("atlDirectorObject.atlDirector")
If atlDirectorObject.CreateTool("3270", 1, True, True, 0, atl3270Tool, ErrMsg) <> S_OK Then
    'Terminate
End If
4

1 に答える 1

5

遅延バインディングは、vb.netで簡単に実行できます。したがって、さまざまな言語でコードを記述するための.NETのサポートを利用して、COMコンポーネントをラップするvb.netクラスライブラリプロジェクトを追加します。

識別子名の「atl」プレフィックスが不思議です。ATLは、COMコンポーネントの記述に非常に人気のあるC++ライブラリであるActiveXテンプレートライブラリの頭字語です。デフォルトでは、レイトとアーリーの両方でデュアルバインディングをサポートするサーバーを作成します。早期バインディングにはタイプライブラリが必要です。これは、ATLプロジェクトのデフォルトで実行可能ファイルに埋め込まれます。したがって、ここでアーリーバウンドC#コードを作成する機会を無駄にしないようにしてください。プロジェクト+参照の追加、[参照]タブ、DLLを選択します。苦情がない場合は、問題ありません。オブジェクトブラウザを使用して、生成された相互運用ライブラリを確認してください。

于 2012-05-31T23:25:02.877 に答える