别人做好的dll和使用这个dll的一个demo程序,demo程序在vs2008里面编译完后可以正常运行,但是我在一个函数内添加了一个变量后,其他任何代码都没有加,程序调用dll里的一个函数的时候却崩溃了,很奇怪,哪位高人解释一下?

解决方案 »

  1.   

    单步跟了,就是在调用dll里面的一个函数的时候崩溃了,崩溃的地址是在那个dll里面。
      

  2.   

    这个是有可能的
    DLL重新编译以后,出函数的函数地址(相对于DLL)有可能发生变化,
    这个时候如果你的EXE是通过Lib加载的DLL,也就是静态加载的DLL,那么调用DLL中函数是使用的函数地址还是旧版本中的函数地址,没有更新,最后执行的时候肯定就不对了;因此DLL重新编译后,EXE也需要重新编译。
      

  3.   

    不应该是这个原因,首先我的dll和lib版本是一致的,程序每次我都是执行重新编译链接,所以,不应该是这个原因。