所以我最近完成了一个我一直在研究的VC ++控制台应用程序并将其发送给我的一个朋友试用,但他甚至无法打开它,因为他一直收到错误。
将打开一个标题为 Bad - Image 的框,然后显示错误和内容,它说它无法在朋友计算机上找到文件MSVCP140D.dll
但是当我开始它运行良好的程序。
有谁能告诉我为什么他不能播放该节目以及如何解决它?
答案 0 :(得分:3)
您已在调试模式下构建项目,并且正在使用Multi-threaded Debug DLL (/MDd)
RunTime库。
Multi-threaded Debug (/MTd)
并重建您的项目。或者,您可以在发布模式下构建项目,然后选择 Multi-threaded (/MT)
运行时库。
这将生成一个使用标准Windows库的独立可执行文件,您不必使用* .exe文件提供额外的dll。
答案 1 :(得分:2)
您需要使用Microsoft Visual C ++ Redistributable软件包发送程序。那是MSVCP140D.dll
。
正如user4581301
指出的那样,D
中的MSVCP140D.dll
表示“调试”。
您不应该发送启用调试的可执行文件。它使逆向工程,黑客攻击和其他修改变得更容易。
您应该编译一个发布版本,并将其与可再发行组件一起发送。
答案 2 :(得分:0)
嗯,你需要做一件事(简单的解决方案),你只需转到你已经构建了代码的系统的system32
目录并查找文件MSVCP140D.dll
,把它放在你的可执行文件(.exe)并将其提供给您的朋友,并告诉他将dll保存在与exe相同的文件夹中。
MSVCP140D.dll
(可再发行包)是运行应用程序时需要提供的运行时依赖项之一。
现在它将被安装。或者您可以在目标系统的system32
复制dll,然后尝试。
但如果您将debug
版本提供给客户端,则不应该提供declare @flag bit = 0
declare @person_ids varchar(100) = '(1001,1002)'
select *
from file_table fd
where fd.person_id in (select
case @flag when 0 then @person_ids
else fd.person_id
end)
版本,您应该提供它的发布版本。