jptanggordon
V2EX  ›  问与答

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

  •  
  •   jptanggordon · Mar 21, 2016 · 3337 views
    This topic created in 3738 days ago, the information mentioned may be changed or developed.

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

    9 replies    2016-03-21 23:44:51 +08:00
    46fo
        1
    46fo  
       Mar 21, 2016
    因为 debug 版加入了 调试信息 debug 版的 new malloc free delete 不一样
    pagict
        2
    pagict  
       Mar 21, 2016
    为什么不先贴一下是什么错
    3dwelcome
        3
    3dwelcome  
       Mar 21, 2016
    debug 有一个叫 Side by Side 的依赖东西,有可能调用不同版本的 msvcrt.dll 之类的,尽可能的多用 release 发布吧,省去很多麻烦。
    stupidcat
        4
    stupidcat  
       Mar 21, 2016
    楼主问的是,为什么网上的 dll 就是只有 release 版的,但是 debug 也能用,但是自己编译的 release 版的 dll ,在 debug 却不能用?
    jptanggordon
        5
    jptanggordon  
    OP
       Mar 21, 2016
    @pagict 不报错,一开程序就死机
    @stupidcat 对!
    xujif
        6
    xujif  
       Mar 21, 2016
    一般来说不会有问题的,可以先贴下错误
    jptanggordon
        7
    jptanggordon  
    OP
       Mar 21, 2016
    @xujif 报错是: 0x77511037 (ntdll.dll) (Marching.exe 中)处有未经处理的异常: 0xC0000005: 读取位置 0x00000044 时发生访问冲突。
    xujif
        8
    xujif  
       Mar 21, 2016 via iPhone
    @jptanggordon 看着像野指针 debug 模式下面
    xujif
        9
    xujif  
       Mar 21, 2016 via iPhone
    debug 模式会初始化 cc 不一定出错。但是 release 会乱来。每次都是 0000044 ?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5714 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 107ms · UTC 01:51 · PVG 09:51 · LAX 18:51 · JFK 21:51
    ♥ Do have faith in what you're doing.