V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Warder
V2EX  ›  问与答

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

  •  
  •   Warder · 2017-10-30 16:28:51 +08:00 · 1988 次点击
    这是一个创建于 2341 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 版本选择的问题吗?

    6 条回复    2017-10-31 17:17:12 +08:00
    shoaly
        1
    shoaly  
       2017-10-30 17:15:08 +08:00
    不纠结嘛, 直接在你的程序 运行目录下面添加这几个 dll 不就完事了
    Osk
        2
    Osk  
       2017-10-30 17:20:04 +08:00 via Android
    静态连接试试?大不了文件大一点
    AttufliX
        3
    AttufliX  
       2017-10-30 17:30:48 +08:00 via Android
    dll 的话不建议静态链接 runtime,你在目标计算机上装 Ms c++ 2017 redistribute 运行库,或者直接把开发机上的 VCRUNTIME140 拷到你 dll 所在文件夹里
    Warder
        4
    Warder  
    OP
       2017-10-30 18:32:21 +08:00
    这个问题我解决了,不过还是挺费解的。
    我在 64 位 win10 上编译出来的 64 位 dll,到 64 位的 win7 上,居然还要用 SysWOW64 中的 regsvr32 来注册。
    这样注册的时候没有再提醒模块找不到的问题了。
    owt5008137
        5
    owt5008137  
       2017-10-31 01:01:59 +08:00 via Android   ❤️ 1
    /MT 编译,静态链接
    Warder
        6
    Warder  
    OP
       2017-10-31 17:17:12 +08:00
    @owt5008137 确实,还是得这么来解决
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3326 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 13:44 · PVG 21:44 · LAX 06:44 · JFK 09:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.