我正在开发一些Windows软件,有时被用于嵌入式场景。我的用户经常会有一台专门的Win7或Win8电脑,他们从不更新,甚至不连接到互联网。用户将这些电脑插入到特定的工业硬件中,只用于一个任务。
我的软件包括我用Visual C ++编写的组件。我使用适当的安装程序合并模块将CRT包含在我的MSI包中。
不幸的是,对于从未更新过的PC,这并不起作用:今天我收到了一个错误报告,应用程序在启动时崩溃,显示“无法启动,因为api-ms-win-crt-stdio-l1-1-0.dll 在您的计算机上丢失”。
这个答案建议静态链接到CRT。
我做到了。但我C ++代码的某些部分依赖于OpenMP进行并行处理。 Dependency walker向我展示了我正在构建的DLL即使使用
它还表明,vcomp140.dll仅依赖于kernel32.dll和user32.dll。
我可以只将那个单独的DLL vcomp140.dll放在安装文件夹中吗?它会在离线的Windows 7计算机上工作吗?
我的软件包括我用Visual C ++编写的组件。我使用适当的安装程序合并模块将CRT包含在我的MSI包中。
不幸的是,对于从未更新过的PC,这并不起作用:今天我收到了一个错误报告,应用程序在启动时崩溃,显示“无法启动,因为api-ms-win-crt-stdio-l1-1-0.dll 在您的计算机上丢失”。
这个答案建议静态链接到CRT。
我做到了。但我C ++代码的某些部分依赖于OpenMP进行并行处理。 Dependency walker向我展示了我正在构建的DLL即使使用
多线程(/MT)
运行库设置也依赖于vcomp140.dll。它还表明,vcomp140.dll仅依赖于kernel32.dll和user32.dll。
我可以只将那个单独的DLL vcomp140.dll放在安装文件夹中吗?它会在离线的Windows 7计算机上工作吗?