我的意思就是不允许别人把做好的东西二次打包?因为我现在就发现一个这样的问题,我直接调用别人写好的lib就没问题,但如果我放到我的dll里,就不行,具体的问题就是,别人的lib里有"创建"的工作,也就是new出来一块内存的工作,我发现一执行到这一步就会有问题,

解决方案 »

  1.   


    静态库一样可以编译进DLL里
      

  2.   

    我没看清问题,楼主的要求好像有点过份,因为EXE调用和DLL调用其实并没有什么太大的区别
      

  3.   

    别人的库确实是静态库 我把这个静态库放到dll下,为什么就不行呢?放到exe下就没问题,出现的错误就是像我刚才说的,当连接到dll里面的这个静态的lib库里的函数时(函数的功能就是分配内存,其他的函数没问题,至少在这个函数之前的 )就会挂掉,
      

  4.   

    哦,做成静态的就无法在包一层dll了。。多谢各位,
      

  5.   

    LZ可以准确的告诉你,如果你在DLL里面new的内存放到EXE中delete,一般就会出现异常,具体原因是什么我不大清楚。估计是在不同的堆上吧。如果你非要这么做,也不是不可能。就是 EXE与DLL都用多线程DLL来编译,也就是/MD。另外希望LZ记住一句话,是谁分配就谁释放。DLL分配的就DLL释放。EXE分配的就EXE释放。
      

  6.   

    DLL 和 exe PE格式几乎完全一样。
    记得Dll里无法导入lib资源的。