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

debug 版的 exe 为什么不能和 release 版的 dll 一起用?

  •  
  •   jptanggordon · 2016-03-21 07:51:17 +08:00 · 2608 次点击
    这是一个创建于 3161 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请教各位,我写了个 release 版的 dll ,想一直用,不再编译它。可是连上我的 debug 版的 exe 就出错。网上有的库就只有 release 版的 dll ,连接什么版本的 exe 都能用,这是怎么做的?

    9 条回复    2016-03-21 23:44:51 +08:00
    xdeng
        1
    xdeng  
       2016-03-21 09:14:25 +08:00
    因为 debug 版加入了 调试信息 debug 版的 new malloc free delete 不一样
    pagict
        2
    pagict  
       2016-03-21 10:06:31 +08:00
    为什么不先贴一下是什么错
    3dwelcome
        3
    3dwelcome  
       2016-03-21 10:10:38 +08:00
    debug 有一个叫 Side by Side 的依赖东西,有可能调用不同版本的 msvcrt.dll 之类的,尽可能的多用 release 发布吧,省去很多麻烦。
    stupidcat
        4
    stupidcat  
       2016-03-21 10:23:12 +08:00
    楼主问的是,为什么网上的 dll 就是只有 release 版的,但是 debug 也能用,但是自己编译的 release 版的 dll ,在 debug 却不能用?
    jptanggordon
        5
    jptanggordon  
    OP
       2016-03-21 12:37:28 +08:00
    @pagict 不报错,一开程序就死机
    @stupidcat 对!
    xujif
        6
    xujif  
       2016-03-21 12:50:07 +08:00
    一般来说不会有问题的,可以先贴下错误
    jptanggordon
        7
    jptanggordon  
    OP
       2016-03-21 23:15:03 +08:00
    @xujif 报错是: 0x77511037 (ntdll.dll) (Marching.exe 中)处有未经处理的异常: 0xC0000005: 读取位置 0x00000044 时发生访问冲突。
    xujif
        8
    xujif  
       2016-03-21 23:30:49 +08:00 via iPhone
    @jptanggordon 看着像野指针 debug 模式下面
    xujif
        9
    xujif  
       2016-03-21 23:44:51 +08:00 via iPhone
    debug 模式会初始化 cc 不一定出错。但是 release 会乱来。每次都是 0000044 ?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   963 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 21:21 · PVG 05:21 · LAX 13:21 · JFK 16:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.