首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Visual设置以处理丢失的MSVCP140D.dll

Visual设置以处理丢失的MSVCP140D.dll
EN

Stack Overflow用户
提问于 2018-07-04 19:52:52
回答 1查看 2.4K关注 0票数 1

我的生成计算机与我的目标不同(尽管两者都是Windows 10)。

我正在使用VS2017和最新的更新。

目标机器有MFC: 14.12.25810

如何设置我的项目设置,以便我可以针对那个版本的MFC。我一直收到一个错误:丢失MSVCP140D.dll

当我试图安装VS2015 C++可再发行版时,会出现一个关于版本冲突的错误。因此,我宁愿停止以VS2015为目标,改为VS2017,或者更好地将可再发行的内容包含在我正在安装的文件夹中。

下面是我的VS2017项目设置:(我也在使用最新的Windows )。

更新

我设置了静态链接MFC,它将开关/MTd添加到命令行:

代码语言:javascript
运行
复制
/permissive- /Yu"stdafx.h" /GS /W3 /Zc:wchar_t /ZI /Gm- /Od /sdl /Fd"x64\Debug\vc141.pdb" /Zc:inline /fp:precise /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope /RTC1 /Gd /MTd /FC /Fa"x64\Debug\" /EHsc /nologo /Fo"x64\Debug\" /Fp"x64\Debug\LinkWareMessageBus.pch" /diagnostics:classic 

但是,现在我在编译时遇到了很多错误:

严重性代码描述项目文件行抑制状态警告LNK4098 defaultlib 'MSVCRTD‘与其他库冲突;使用/NODEFAULTLIB:library LinkWareMessageBus D:\/NODEFAULTLIB:library\LinkWareMessageBus\LINK 1 严重程度代码描述项目文件行抑制状态错误LNK1120 6未解析的外部环境LinkWareMessageBus LinkWareMessageBus 1 函数D:\Source\LinkWareMessageBus\nng.lib(win_thread.c.obj) 1中引用的LNK2019未解析外部符号__imp_calloc错误 函数D:\Source\LinkWareMessageBus\nng.lib(win_rand.c.obj) 1中引用的LNK2019未解析外部符号__imp_rand_s错误 函数D:\Source\LinkWareMessageBus\nng.lib(win_debug.c.obj) 1中引用的LNK2019未解析外部符号__imp_strerror错误 错误LNK2001未解析外部符号__imp_strncpy LinkWareMessageBus LinkWareMessageBus 1 函数D:\Source\LinkWareMessageBus\nng.lib(http_msg.c.obj) 1中引用的LNK2019未解析外部符号__imp_strncpy错误 函数D:\Source\LinkWareMessageBus\nng.lib(win_thread.c.obj) 1中引用的LNK2019未解析外部符号__imp__beginthreadex错误 函数D:\Source\LinkWareMessageBus\nng.lib(strs.c.obj)中引用的错误LNK2019未解析外部符号__imp__stricmp

我还尝试设置“忽略所有默认库=否”,但仍然会出现相同的错误。

下面是链接命令参数:

代码语言:javascript
运行
复制
/OUT:"D:\Source\LinkWareMessageBus\x64\Debug\LinkWareMessageBus.exe" /MANIFEST /NXCOMPAT /PDB:"D:\Source\LinkWareMessageBus\x64\Debug\LinkWareMessageBus.pdb" /DYNAMICBASE "flatbuffers.lib" "nng.lib" "mswsock.lib" "advapi32.lib" "ws2_32.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /IMPLIB:"nng.lib" /DEBUG /MACHINE:X64 /INCREMENTAL /PGD:"D:\Source\LinkWareMessageBus\x64\Debug\LinkWareMessageBus.pgd" /SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"x64\Debug\LinkWareMessageBus.exe.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /LIBPATH:"D:\Source\LinkWareMessageBus\nng\lib" /LIBPATH:"D:\Source\LinkWareMessageBus\flatbuffers\lib" /TLBID:1 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-02 03:07:26

我现在所做的只是用符号进行发布构建。

https://msdn.microsoft.com/en-us/library/fsk896zz.aspx?f=255&MSPPError=-2147217396

这一点现在特别有用,因为我正在为不喜欢加载我创建的DLL的调试版本的其他软件编写插件。有时,您不能看到函数的本地堆栈变量,但是您总是可以看到成员变量和实例变量以及参数,因此这对我来说是最好的,因此不必担心上面的SDK绑定问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51180097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档