win10 中用 vs community 2017 写了个 dll,在 win7 上面没法用,好像是 win7 上没有对应的 dll 依赖,有什么解决办法?

2017-10-30 16:28:51 +08:00
 Warder

File Type: DLL

Image has the following dependencies:

KERNEL32.dll
USER32.dll
GDI32.dll
ADVAPI32.dll
ole32.dll
XmlLite.dll
WindowsCodecs.dll
SHLWAPI.dll
VCRUNTIME140.dll
api-ms-win-crt-heap-l1-1-0.dll
api-ms-win-crt-runtime-l1-1-0.dll

win7 中没有最后三个 dll,是否能够在编译的时候不让我的 dll 依赖这三个模块?
是项目配置中 windows sdk 版本选择的问题吗?

2169 次点击
所在节点    问与答
6 条回复
shoaly
2017-10-30 17:15:08 +08:00
不纠结嘛, 直接在你的程序 运行目录下面添加这几个 dll 不就完事了
Osk
2017-10-30 17:20:04 +08:00
静态连接试试?大不了文件大一点
AttufliX
2017-10-30 17:30:48 +08:00
dll 的话不建议静态链接 runtime,你在目标计算机上装 Ms c++ 2017 redistribute 运行库,或者直接把开发机上的 VCRUNTIME140 拷到你 dll 所在文件夹里
Warder
2017-10-30 18:32:21 +08:00
这个问题我解决了,不过还是挺费解的。
我在 64 位 win10 上编译出来的 64 位 dll,到 64 位的 win7 上,居然还要用 SysWOW64 中的 regsvr32 来注册。
这样注册的时候没有再提醒模块找不到的问题了。
owt5008137
2017-10-31 01:01:59 +08:00
/MT 编译,静态链接
Warder
2017-10-31 17:17:12 +08:00
@owt5008137 确实,还是得这么来解决

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/401983

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX