我写了一个连接服务器的客户端dll程序,
但是在使用该dll函数的时候,一定要use mfc in shared dll才行
但是我想在release 版本中使用static dll连接的话 就可以在任何没有mfc 动态连接库的机器上运行请问哪位知道这是什么问题或能参考什么书籍或网站吗?
我很急呀! 多谢!!

解决方案 »

  1.   

    用vc++自带工具depends察看你使用了哪些mfc动态连接库,把这些dll拷到你自己的dll目录里就可以运行了。
      

  2.   

    将你的dll重新修改编译为静态lib库,才可以使用静态连接
      

  3.   

    不要公开类,不要跨DLL申请释放内存。
    千万不要用CString作为函数的参数。
      

  4.   

    to verybigbug() :
    为什么不能用CString 做函数的参数?
    是说仅dll函数不行吗?
    我的dll函数一些内部函数可以用CString做参数吗?
      

  5.   

    Dll内部函数可以用CString作为参数。
    公开的函数(被别的模块调用的函数)不要用CString作为参数。
    因为CString在不同的模块中如果进行修改或复值的话就会发生
    内存的申请和释放,也就等于跨模块的内存申请和释放了。
    就会有问题。除非你都用MFC的动态DLL(这样申请和释放的
    实际代码都发生在MFC42.DLL中所以没有问题)。如果用CString作为参数,即使DLL和Exe都用静态MFC连接,也
    会有问题的。所以,不要用CString作为公开函数的参数。