从自定义位置(OCX,DLL)注册库的环境变量

时间:2018-07-16 05:25:05

标签: dll vb6 environment-variables ocx

我已经针对这个特定问题进行了广泛的搜索,但是我只为每个问题单独找到单独的解决方案。 我基本上想知道环境变量的名称。我的假设是变量的名称应该是组件的名称,并且应该是用户变量而不是系统变量,例如:

name -> "mydll.dll"
path -> "c:\myCustomPath\mydll.dll"

我要这样做的原因有两个。首先,我经常直接从VM中的源代码运行定制工具(这很痛苦),或者我编译它并在W10中运行它。但是,我只是无法使用具有依赖项的更复杂的应用程序来执行此操作,因为那样一来,我将不得不将大量的DLL注册到系统根目录,并且我知道我会很容易地对其进行跟踪。第二个原因是因为我读过this reply那个家伙说,不建议将系统根目录用于私有库,而且他还建议使用环境变量,听起来像是解决我的问题的好方法。

之所以没有通过反复试验来对自己进行测试,是因为如果我在变量中输入了错误的内容,我担心自己的唯一计算机无法使用。另外,我正在使用的所有库和exe文件都是在VB6中编写和编译的,所以我没有轻松的方法,因为我已经尝试将多个项目合并到一个相当小的项目中。我最终几乎重写了全部内容,因为VB6不喜欢私有对象类中的公共类型枚举等。

最后,我不确定我的问题是否在这里,因为它不涉及编程,但我只是觉得在这里会更好地理解它。

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,那么您是在问可以在哪里放置COM DLL,以便可以在计算机上进行注册

答案是-从根本上说-没关系在哪里,因为注册具有“全局”作用。 (简化一下)。

现在,对于在系统范围内注册的DLL应该存放的位置,现在有了标准或约定-例如Windows\SysWOW64文件夹。但是,要点是,如果您注册了错误的东西,或者遗漏了依赖项,或者在不取消注册的情况下删除了已注册的DLL-等等,等等-会引起问题。

我不知道任何环境变量与COM DLL的基本功能有任何关系。 (我可能对某事一无所知)。

如果您实际上正在使用应用程序清单(可能是该问题所隐含的内容),则您不需要,也不应注册所显示的任何DLL。