延迟加载的dll, 在release下如果要加载的dll不存在, 不能捕获到异常, 程序死在那里不动, debug下可以捕获到异常,

解决方案 »

  1.   

    捕获异常干什么?LoadLibrary不成功有返回值的啊。
      

  2.   

    你所说的隐式连接时候也就是静态连接吧(使用了.lib文件的),那在运行的时候没有这个文件的时候运行会报错的啊!
      

  3.   

    to guxingfeiyu(孤星飞雨):
    不会,delayload会在第一次使用的时候才加载
      

  4.   

    哦,dll的延时加载没有用过,受教了。
    那么避开这个问题来处理,程序中是否可以做到先去检测这个dll是否存在呢?
      

  5.   

    jasonshark(没暑假了...)
    有什么办法解决呢? debug是好的, release倒不好了, 奇怪了
      

  6.   

    这是因为默认情况下会移除你的一些SEH..LS是一种办法,但是开销可能有点大, 因为这个开关是对整个工程有效的, 你先试试吧,我再查查有没有更好点的办法, 前段时间好象在网上看到过专门讲这个delayload的问题的 :)
      

  7.   

    lightwell(大道不过两三行) 的方法可以解决问题, 可以解释一下原因吗?
    还有其他解决办法吗?
      

  8.   

    有什么办法解决呢? debug是好的, release倒不好了, 奇怪了----assert 宏 在debug下不起作用release 下换 VERIFY试试