所以我已经成功编译并运行了我的应用程序。它在我的开发计算机上完美运行。
但是,当我尝试在另一台计算机上运行它时,它将无法运行,我得到“应用程序无法正确启动(0xc0150002)”错误。
几个问题:
我知道我可能会在自己和谷歌之间解决这个问题,但我没有时间进行这样的冒险。指出我正确的方向,我也许会投票给你最好的答案......
编辑:事实证明其中一个DLL(我自己编译)被编译为Debug,所以它缺少一些恼人的调试DLL。我把它重新编译为Release,一切正常。答案 0 :(得分:4)
您应该获取并安装MSVC Redistributable Package。它包含由MSVS编写和编译的应用程序所需的所有DLL。
答案 1 :(得分:1)
在Visual Studio中调试|运行应用程序时,您将在Output Window
中看到已加载的dll列表。然后,您可以使用Process Explorer
之类的工具来查看应用程序实际加载到部署计算机上的dll。比较两者 - 你会得到导致问题的dll。
您可以将应用程序与此dll耦合在同一目录中,也可以通过将其链接到相应的.lib文件来静态链接到它。
答案 2 :(得分:0)
这似乎与缺少某种类型的DLL有关。
您可以在项目选项下建立编译器设置链接的库: C ++>>代码生成>>运行时库
此设置通常设置为多线程DLL或多线程静态,以便您进行实现
依赖DLL可以与可执行文件位于同一目录中,并且Windows可以在那里可靠地找到它们,尽管根据DLL的性质(由其他应用程序等使用)还有其他选项。
如果这是您的问题,可以通过喜欢等效的静态库使其作为单个exe运行:如果您拥有库的源代码,这很容易,因为您可以使用正确的设置编译它们,如果你只是使用VC的可再发行组件,然后应该有编译器附带的静态库,你可以通过更改上面的项目设置链接到它们。如果您有其他第三方库,则需要找到在相同编译器版本中使用相同设置编译的静态版本,以使其可靠。