C++ 如何使用WiX手动注册64位DLL
我正在使用WiX安装一个64位应用程序。我已经知道如何创建一个DLL,但是我很难知道如何注册我安装的DLL,所以我无法获得C++ 如何使用WiX手动注册64位DLL,c++,wix,64-bit,C++,Wix,64 Bit,我正在使用WiX安装一个64位应用程序。我已经知道如何创建一个DLL,但是我很难知道如何注册我安装的DLL,所以我无法获得 "Program can't start because XXXX.dll is missing from your computer. Try reinstalling the program to fix this problem" 错误 我尝试使用heat.exe创建必要的RegistryValue标记,但它与64位DLL不兼容。我用32位编译了一些DLL,并
"Program can't start because XXXX.dll is missing from your computer.
Try reinstalling the program to fix this problem"
错误
我尝试使用heat.exe创建必要的RegistryValue标记,但它与64位DLL不兼容。我用32位编译了一些DLL,并不是所有DLL都用32位,但我仍然无法让heat.exe工作。现在看来,我应该能够手动组合RegistryValue标记,但我不知道它们应该包含什么。我一直在看这个例子,它比WiX文章中的例子复杂得多
我需要什么RegistryValue标记才能向操作系统注册DLL,以便在路径上找到它
编辑:附加上下文
我正在尝试安装一个SDK和一些示例源代码。我将SDK DLL、.libs和头放在\Program Files的文件夹中,并将示例源代码放在桌面上的文件夹中。我在%LIBPATH%上有lib目录,在%include%上有include目录,在%PATH%上有bin DLL目录
然后,我在桌面上有一个文件夹,其中有一个用于示例代码的VS解决方案。在解决方案中,我在VS项目的附加库目录中指定%LIBPATH%,在附加包含目录字段中指定%INCLUDE%。这样做很好,解决方案也会建立起来。但是当我试着运行它时,我发现你的计算机错误中缺少DLL。我想弄清楚如何让SDK DLL可以被查找,无论它是否在%PATH%上,这样用户就可以简单地构建和运行演示代码,而不需要复制DLL,并且对于他们构建的任何其他应用程序也是如此
编辑2:我投票结束这个问题。似乎使用WiX注册DLL与我的实际问题无关 你把两件事搞混了。注册是一个COM活动,但XXXX.dll丢失表示普通的非COM dll 您对%PATH%的引用还提示存在非COM DLL,但不需要%PATH%。相反,在可执行文件旁边安装DLL
理论上,还有应用程序清单,但微软把它搞得一团糟。如果你写的是任何一种普通的应用程序,我会完全避免使用它们 您可以简单地将SelfRegCost=1添加到每个DLL的元素中。我尝试了,但注册失败。还有,好像是这样的。谢谢你的解释。我编辑了这个问题,以提供一些上下文,说明为什么我不能按照您的建议将DLL放在EXE文件夹中。