我在C++图形用户界面编程方面很新,因此经验不太丰富。
我使用Visual Studio 2017 CRL包创建了一个GUI程序,现在我正在试图使这个exe文件对每个人都可用。 这个应用程序对于那些安装了Visual Studio或VC Runtime的人来说工作得很好,但是对于那些没有安装的人来说,程序会抛出类似于“vcruntime140.dll在您的计算机上缺失以运行此应用程序”的错误信息。 我不确定如何将这些DLL链接到我的程序中,以便每个人都能使用它。 我也不太确定如何链接DLL。
我在C++图形用户界面编程方面很新,因此经验不太丰富。
我使用Visual Studio 2017 CRL包创建了一个GUI程序,现在我正在试图使这个exe文件对每个人都可用。 这个应用程序对于那些安装了Visual Studio或VC Runtime的人来说工作得很好,但是对于那些没有安装的人来说,程序会抛出类似于“vcruntime140.dll在您的计算机上缺失以运行此应用程序”的错误信息。 我不确定如何将这些DLL链接到我的程序中,以便每个人都能使用它。 我也不太确定如何链接DLL。
基本上有两个选择。
行业标准是在您的程序旁边附带Visual Studio 20xx Runtime Redistributable Installer,让它在任何人尝试运行您的程序之前运行,以确保.dll文件安装到目标计算机上。
另一个选择是在编译时更改库链接到可执行文件的方式。在Visual Studio中使用标志来完成此操作:
基本上,您需要将 Runtime Library 字段更改为多线程或多线程调试,具体取决于您是否处于发布或调试模式,而不是默认值多线程DLL。
然而,请注意,您需要确保您使用的每个库都以相同的方式编译:如果其中任何一个使用了Runtime Library的DLL版本,则它们将以有趣的方式与您的代码互操作,并且最小的问题是它们仍然需要安装DLL,从而使您的努力功亏一篑。
如果所有库都是Header-Only,那么这不是问题,但如果其中任何一个已经编译,则需要使用正确的设置重新编译它们。
您需要在计算机上安装Visual Studio 2017 redistribuables(这适用于每个版本的Visual Studio)。
然而,我在Microsoft网站上找不到任何官方链接(可能是因为这还没有正式发布)....
您可能需要使用2015版本(其redistribuables可在此处找到),并等待2017成为官方发布。