问题标签 [tlbimp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 引用 COM 对象 ActiveD 或 MSXML2 时出现大量构建警告
将项目从 .NET 1.1 移动到 .NET 2.0 后,MsBuild 会针对某些 COM 对象发出大量警告。
测试示例代码(实际代码无关紧要,仅用于创建警告):
警告消息看起来像
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.targets:警告:运行时封送处理程序无法封送“ITypeLib.RemoteGetLibAttr”的至少一个参数。因此,此类参数将作为指针传递,并且可能需要不安全的代码来操作。
观察:
- ActiveDs(11 个警告)和 MSXML2(54 个警告)会发生这种情况。
- 我们自己的 COM 对象没有看到。
<Reference>
.csproj 文件中的条目包含属性WrapperTool = "tlbimp"
- 尽管有所有警告,但在运行的系统中没有发现任何问题。
知道如何摆脱警告吗?
.net - 在 TLBIMP-ed dll 之后手动生成 ActiveX 包装器?
我有几个需要从 C# 项目访问的 ActiveX 组件。
我可以通过 Visual Studio 的添加引用对话框导入它们,该对话框还将自动生成包装器类。(即ABCLib
和AxABCLib
)
我知道我可以通过TLBIMP /primary
在每个单独的 OCX 文件上运行来手动生成主互操作程序集,但我找不到生成 ActiveX 包装器的方法,除非我通过 Visual Studio 用户界面执行此操作。
是否有在 .NET SDK 中生成 ActiveX 包装器的命令行版本?
我想AxABCLib
从手动从 TLBIMP 获得的 PIA 生成版本。(即设置命名空间、输出 dll 文件名等)有可能吗?
c# - 将类型库导入为 C# 代码的工具
是否有将 COM 类型库导入/转换为 C# 代码而不是生成程序集的工具?TLBIMP 工具和 TypeLibaryConverter 类只生成程序集。
通过在生成的 Interop 程序集上运行 Reflector 并复制粘贴反汇编的源代码,我已经成功地翻录了 C#ComImport
定义,但这通常需要在编译之前进行大量手动修补。
期望的目标是一个没有附属互操作 DLL 的单个 EXE,所以答案可能是使用 ILMerge 将互操作 DLL 有效地嵌入到 EXE 中。
我确信过去我会遇到这样的工具 - 但也许它梦想过它:-)
c++ - 将 dll 引用添加到托管 c++ 项目时出现编译器错误
我正在使用 VS 2008 并且在我的 C++ 项目中添加对托管 c++ 文件的 dll 引用时偶尔会出现编译器错误。我正在尝试添加对 dll 的引用,以便能够使用智能指针。 例如:#import items.tlb
问题是编译器在items.tlh内的零星地方崩溃,几乎就像删除了缺失的字节块一样,但是当我打开文件时,我找不到对上述错误的任何引用。
我多次尝试重建整个项目,在不同的机器上尝试过,但是虽然编译器错误不一致并且有时会一起消失,但重新重建有时会带来问题。有人告诉我,生成的.tlh文件的大小可能是一个原因,但它并不能真正解决我的问题或为我指明正确的方向。
有没有人经历过同样的症状?谢谢
visual-studio - 在 Visual Studio 中引用 COM 程序集与通过 tlbimp.exe 转换 COM 程序集
当我通过将 COM 程序集 (dll) 作为参考添加到 Visual Studio 项目中时,我可以毫无问题地使用生成的等效公共语言运行时程序集。
但是,如果我尝试使用 tlbimp 将相同的 COM 程序集转换为公共语言运行时程序集,则会遇到各种问题。
有没有办法复制 Visual Studio 与 tlbimp 一起使用的设置?或者换句话说,有没有办法通过使用 tlbimp 来生成与 Visual Studio 相同的互操作类?
.net - COM 接口问题 - .NET
最近我正在阅读有关互操作编组的内容,但我仍然不明白一件事。为了使 .NET 程序集对 COM 可见,我需要使用 tlbexp 工具和/或 regasm 工具。为了使 COM 对 .NET 组件可见,我必须使用 tlbimp 工具——这一切对我来说都很清楚。
除此之外,我在互联网上看到了很多处理具有 guid 属性、IUnknown 和 IDispach 的 COM 接口的代码。
我的问题是所有这些与 COM 有什么关系——我需要使用它吗?我正在准备认证,但他们没有说任何关于接口、指南、IUnknown 等的信息……
我真的不喜欢留下不清楚的东西,所以如果有人可以向我解释一下,我将非常感激。
- 我还有一个关于从 COM(tlbimp 工具)导入的类型库的问题。从 COM 导入的类型库是否还需要在系统中注册 COM 对象?
亲切的问候PK
com - 如何让 tlbimp 不为引用类型自动生成程序集?
我想使用 .NET SDK 中包含的 tlbimp.exe 工具从类型库创建互操作程序集。
我的问题是源类型库正在引用另一个我没有可用的库中的类型。如何让 tlbimp 不为引用类型自动生成程序集?
我收到以下错误:
使用进程监视器我得出的结论是找到了 GridEX20 库,但它引用了另一个未找到的库,并且当找不到该库时 tlbimp 报告错误。
visual-studio-2008 - VS 2008 中的 Wrapper Assembly Key File 设置在哪里?
我正在尝试构建一个强命名的应用程序。它引用了我通过“添加引用”对话框添加的 COM 互操作库。已经有一段时间了,但我似乎记得在旧版本的 Visual Studio 中,有一个Wrapper Assembly Key File的项目设置。我似乎在 Visual Studio 2008 中找不到它?
.net - 在 Visual Studio 中抑制 tlbimp 警告
在 Visual Studio C# 项目中,可以添加对 COM 库的引用。然后, Visual Studio 将在构建项目时使用tlbimp.exe生成互操作程序集。.csproj 文件中的引用如下所示:
但是,我在此处导入的 3rdparty 类型库会导致 tlbimp 发出一些警告。如何在 Visual Studio 中抑制这些警告?我试图将包装工具更改为
但这导致视觉工作室抱怨
遇到一个错误,阻止加载引用“TDAPIOLELib”。包装工具“tlbimp /silent”不是有效的包装工具。
deployment - TLBIMP.EXE - 错误 TI0000 - *.dll 不是有效的类型库
在构建服务器上构建我们的项目时,编译失败并显示错误消息:
我们尝试通过 VS2005 命令提示符手动调用 TlbImp 命令,并出现相同的错误消息。
为了进行调查,我们尝试在虚拟机 (Vbox) 中创建一个干净的构建环境,然后在那里运行构建。一切顺利。
我们还尝试通过 VS2005 命令提示符调用相同的 TlbImp 命令,它成功了。
有了这个,我们假设 DLL 没有任何问题。你知道什么情况会导致这个问题吗?
编辑:发现问题,请参阅我的答案。;)