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 对用不同语言编写代码的支持,添加一个 vb.net 类库项目来包装 COM 组件。

标识符名称上的“atl”前缀很奇怪。ATL 是 ActiveX Template Library 的首字母缩写,是一个非常流行的用于编写 COM 组件的 C++ 库。默认情况下,它会创建支持双重绑定的服务器,包括晚期和早期。对于早期绑定,您需要一个类型库,它在 ATL 项目中默认嵌入到可执行文件中。因此,请确保您没有在这里浪费机会编写早期绑定的 C# 代码。项目+添加引用,浏览选项卡,选择DLL。如果您没有收到任何投诉,那么您就是黄金,使用对象浏览器查看生成的互操作库。

于 2012-05-31T23:25:02.877 回答