问题标签 [regfreecom]

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.

0 投票
1 回答
694 浏览

vb6 - OleControl 实例化为错误类型 - 仅在 Reg Free COM 中使用时?

我有一个 ActiveX 控件(使用 C# 创建),我正在使用后期绑定将其添加到 Visual FoxPro 中的表单中。当我注册控件时它可以正常工作。

我想使用 reg free COM 并创建必要的清单文件。现在它加载并以非活动状态显示,直到我双击或语法激活它​​。我认为这与 reg free com 清单文件没有任何关系。但是,在进行后期绑定调用之前/之后,我需要做些什么来设置它AddObject()吗?

当我检查由它OleTypeAllowed创建的 OleControl 的属性时,AddObject()它是1(嵌入式 OLE 对象)而不是-2(ActiveX 对象)。所以 OleControl 被实例化为错误的类型。

我还尝试了以下方法:

  1. DEFINE的子类OleControl并设置属性OleTypeAllowed = -2。使用后期绑定加载控件。它没有按要求工作。OleTypeAllowed回来了1

  2. 注册了 ActiveX 控件。使用可视化编辑器将 ActiveX 控件作为子类添加到项目中。取消注册控件。使用后期绑定加载控件。它没有按要求工作。OleTypeAllowed回来了1

是否可以将 OleControl 作为 ActiveX 控件加载?

任何我可以转换为 FoxPro 的 VB 输入也将不胜感激。

0 投票
1 回答
707 浏览

vb6 - 使用无注册 COM/.NET 互操作探测 .NET 程序集

我们有一个由 VB6 可执行文件通过 COM 互操作使用的程序集。此程序集使用其他 .NET 程序集(不适用于 COM)。我们为我们的 VB6 应用程序定义了一个 .manifest,这样我们就可以在不注册的情况下使用 .NET 程序集。我们还为我们的 VB6 应用程序定义了一个带有探测设置的 .config,以在子目录(“bin”)中查找程序集。

如果我们将所有 .NET 程序集放在指定的子目录(“bin”)中,我们的应用程序将成功启动,并且我们可以使用它,直到 Interop-Assembly 调用其他程序集的某些代码。然后我们得到一个运行时错误“429”:ActiveX 组件无法创建对象。

当我们删除 .config 文件并将所有文件放在同一目录中时,应用程序按预期工作。

是否可以对 VB6 可执行文件使用的 .NET 程序集进行探测?有没有办法正确设置探测,以便成功定位其他组件?

.config

0 投票
3 回答
2605 浏览

com - Is registration-free activation possible for EXE (out-of-process) COM servers?

I know that we can use CoLoadLibrary and DllGetClassObject to get the IClassFactory interface and get the COM component interface without registering the DLL.

But what about a COM component in an EXE? Is there a way that I can get a COM component interface from an EXE-type COM server by just providing a different file path?

0 投票
2 回答
1802 浏览

com - 免注册 COM:引用 VB6 DLL 的 VB6 可执行文件

因此,我有一个引用多个 VB6 COM DLL 的单个 VB6 可执行文件。我是否可以即时生成可执行文件的清单以及每个引用的 DLL 的清单?如果是这样,那怎么办?

我想将此操作作为我们构建过程的一部分来执行,而不必将 COM DLL 注册为该过程的一部分。

注意:到目前为止,我发现的所有无 reg 的 COM 示例都涉及 .NET 互操作,这不是我正在做的事情的要求。

[编辑]

在使用 Unattended Make My Manifest 进行一些初步测试后,我发现它不像我想要的那样用户友好。而且,由于文档只有一个 Sample.ini 文件,因此与不需要放入该文件的内容相比,我很难理解应该放入该文件的内容。无论如何,我决定使用我自己的工具来制作清单。希望我能得到雇主的许可,将代码作为开源发布。

*现在,如果您和我处于相同的位置,并且您想创建一个使用并排/免注册 COM 交互的构建和生产环境,请知道这是可能的。我建议首先使用简单的 DLL 和消费者应用程序手工制作它们,然后在此基础上逐步构建,直到满足您的特定需求为止。**

0 投票
1 回答
250 浏览

visual-studio-2008 - VC++ 2008 中的隔离模式(免注册)COM 设置

如何在 VC++ 2008 项目中创建对隔离模式(免注册)COM DLL 的引用?

在 C# 项目中,它就像Isolated在引用上切换属性一样简单。如何在 VC++ 项目中进行等效操作?

0 投票
1 回答
536 浏览

dll - 您可以使用清单文件告诉 VB6 应用程序 .EXE 访问某些版本的 OCX 吗?

我有一个.EXE使用 Microsoft 创建的 VB6 应用程序,OCXs例如. 我遇到了这两个问题。本质上这是一个 DLL-Hell 问题。RICHTX32.OCXMSACAL70.OCXOCXs

如果我使用.EXE.manifest文件.EXE,我是否可以指示 .EXE 访问OCXs应用程序目录中这些文件的特定副本,从而避免与注册这些文件有关的任何问题OCXs

0 投票
1 回答
359 浏览

.net - Reg-Free COM 是否与互操作一起使用?

这里的共识是什么?

我有一个使用 Interop 来利用 .NET 程序集的 VB6 应用程序。我可以使用无注册 COM 来“注册”.NET 程序集吗?

0 投票
1 回答
978 浏览

com - 用于免注册激活的 COM 组件

我有使用非托管程序集(名为 unmanaged.dll)的托管应用程序(名为 managed.exe)。到目前为止,我们已经创建了 Interop.unmanaged.dll,managed.exe 应用程序引用了 interop,并且 unmanaged.dll 已在注册表中注册。这工作得很好。

现在我需要选择避免注册表中的文件并使用私有程序集(即使在注册表中仍然注册了旧版本)

我找到了这篇文章 -为免注册激活配置 COM 组件。我尝试创建两个清单(用于应用程序和程序集),尝试将它们作为资源,但没有任何效果。

谁能一步一步地向我解释这样做的方法?包括清单示例?我还应该像以前一样使用互操作文件吗?

我会很感激任何提示...

0 投票
8 回答
3359 浏览

c# - 在 Windows 7 上使用 VB6 注册 Free Com

我有一些从 VB6 代码中使用的 .NET 代码。我一直在 XP 机器上通过创建列出相关 .NET 程序集的 VB6.exe.manifest 文件来开发它。

例如,假设我的 2 个 .NET 程序集是 Some.Assembly.A.dll 和 Some.Assembly.B.dll,这就是 VB6.EXE.manifest 的样子(我在下面使用 version=1.1.0.0,因为这是版本我在 AssemblyInfo.cs 中设置了 .NET AssemblyVersion):

然后,与同一目录中的 DLL 一起,我拥有程序集和它们自己的清单文件。这是一个示例“Some.Assembly.A.dll.manifest”:

我还在tlbexp引用的 DLL 上运行以创建 TLB 文件,这就是我在 VB6 项目文件中引用的内容。

我想搬到 Windows 7 64 位机器。使用相同的方法,当我点击在 WIN7 机器上实例化 .NET 对象的 VB6 代码时,我得到

“ActiveX 组件无法创建对象。”

在 XP 上,它成功了。如果我故意拼错 VB6.EXE.manifest 中的依赖程序集 - 在 XP 上我得到

“此应用程序无法启动,因为应用程序配置不正确。重新安装应用程序可能会解决此问题。”

在 WIN7 上,VB6 只是加载。就像它忽略了 WIN7 上的清单,所以我无法在 WIN7 上使用 REG FREE 方法加载我的 .NET 对象。如果我regasm是 DLL,一切正常。
关于如何使 VB6 在 WIN7(64 位)上与 reg free com 一起工作的任何想法?

0 投票
1 回答
2045 浏览

c# - 为多个项目设置隔离 COM

我的解决方案由多个项目组成,所有项目都输出类型类库,但输出类型为 Windows 应用程序的项目除外。该应用程序引用了所有其他项目。我还有一个 COM 组件,它也被一些项目和应用程序引用。

我可以通过将 Visual Studio 中引用的 COM 组件的独立属性更改为 TRUE 来设置 regfree COM。解决方案构建成功,我可以看到为该特定程序集或应用程序生成的清单文件。

现在,我的问题是,我需要对所有引用 COM 组件的项目执行此操作吗?如果是,那么我知道我不能在多个项目上将独立属性设置为 TRUE(产生构建错误),那么我该如何解决这个问题?

我对 .net 比较陌生,不太了解 regfree COM(我假设我在做什么是 regfree COM?)。非常感谢我能在这个问题上获得的任何帮助。谢谢。

我目前正在使用 VS 2008。

编辑:当多个项目的独立属性设置为 TRUE 时,构建错误表示 myCOMcomponent.ocx 在两个项目的生成清单中定义。