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

用于从自定义位置(OCX、DLL)注册库的环境变量,dll,vb6,environment-variables,ocx,Dll,Vb6,Environment Variables,Ocx,我已经为这个特定的问题搜索了很广的范围,但是我只为每个问题找到了单独的解决方案我基本上想知道环境变量的名称应该是什么。我的假设是变量的名称应该是组件的名称,并且应该是用户变量而不是系统变量,例如: name -> "mydll.dll" path -> "c:\myCustomPath\mydll.dll" 我之所以想这样做是因为两个原因。首先,我经常直接从VM中的源代码运行我的定制工具(这有点麻烦),或者编译并在W10中运行它。然而,我不能对那些有依赖关系的更复杂的应用程序这样做

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

name -> "mydll.dll"
path -> "c:\myCustomPath\mydll.dll"
我之所以想这样做是因为两个原因。首先,我经常直接从VM中的源代码运行我的定制工具(这有点麻烦),或者编译并在W10中运行它。然而,我不能对那些有依赖关系的更复杂的应用程序这样做,因为那样我就必须在系统根目录上注册成吨的DLL,而且我知道我很容易就会忘记它。第二个原因是因为我读到那个家伙说不建议对私有库使用系统根,他还建议使用环境变量,这听起来是解决我问题的好办法

我没有亲自通过试错法来测试这一点的原因是,如果我在变量中输入了错误的内容,我害怕让我唯一的计算机无法使用。此外,我使用的所有库和exe文件都是用VB6编写和编译的,因此我没有简单的解决方法,因为我已经尝试在一个相当小的项目中将多个项目合并为一个项目。最后我几乎重写了整个过程,因为VB6不喜欢私有对象类中的公共类型枚举等


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

如果我正确理解了你的问题,你是在问你可以在哪里放置COM DLL,以便你可以在你的计算机上注册它们

答案是——从根本上说,它们在哪里并不重要,因为注册具有“全球”效应。(简化一点)

当然,现在对于系统范围内注册的DLL应该使用的位置有一些标准或约定,例如,
Windows\SysWOW64
文件夹。但问题是,如果您注册了错误的东西,或者遗漏了依赖项,或者在没有注销的情况下删除了已注册的DLL,等等,您将导致问题

我不知道有任何环境变量与COM DLL的这个基本功能有关。(我可能不知道什么)


如果您实际使用的是应用程序清单(可能在问题中暗示),那么您不需要也不应该注册任何已显示的DLL。

我将使用我的灵力解决这个不连贯的问题<代码>设置路径=%path%;MyDir。组件仍然需要注册。如果在应用程序目录()中,将找到非COM组件。您可以对同一位置的COM组件使用免注册COM()。@CatCat我希望您详细说明我的问题不连贯的原因。我知道我仍然需要注册组件,我没有提到它,因为我这样做没有问题。我不想做的是将我的库转储到系统文件夹中。我想这很清楚。另外,你的链接真的很有用,我现在还在努力。不过,我还是想知道我的问题的答案。请关注您的链接。我已经按照指示完成了,效果非常好。这是一个比我想要的更好的选择。编辑:还有一个简短的问题。如果我编译客户端和组件的新版本,是否需要更新GUID?你的问题充满了假设,你没有指定你想要什么。因此,我的体力被调动起来使用。这是一篇旧的MS文章,不再出现在MS网站上。有趣的是这页的后半部分。还有VB6帮助