CString是MFC的东西,只能在扩展DLL中使用. 

解决方案 »

  1.   

    就是这样的.
    CString只是MFC的..
      

  2.   

    CString是MFC的东西,只能在扩展DLL中使用. 不是吧?
      

  3.   

    我想也是如此,但C中的FILE类型为什么也不可以呢?
      

  4.   

    现在是使用MFC扩展DLL解决问题了,可是生成的文件有1.27M!!!
    好多VC书都是天下一大抄,都说MFC扩展DLL在其他语言中不能使用!简直就是害人不浅,翻译的人自己不懂,也不要乱说!!就这个不能使用就有多种说法,却都没有说在什么前提下!瞎说!!MFC扩展DLL使用.DEF文件,在DLL的头文件中使用如下的函数原型说明:
    extern "C" int PASCAL EXPORT  AddOneFile(CString NFileName);
    DLL的实现部分如下定义,书写:
    extern "C" int PASCAL EXPORT AddOneFile(CString NFileName)
    {
    AFX_MANAGE_STATE(AfxGetStaticModuleState());
    if(NFileName != "")
    AllFileS = NFileName + ';' + AllFileS;
    return(0);
    }
    注意: AFX_MANAGE_STATE(AfxGetStaticModuleState());最好写上,它主要是在多个DLL之间处理全局变量和函数重入的,没有在静态连接时没影响。
    然后.def文件如下写:注意,没有函数变量表和括号,只有函数名!
    ; HzToLib.def : Declares the module parameters for the DLL.LIBRARY      "HzToLib"
    DESCRIPTION  'HzToLib Windows Dynamic Link Library'EXPORTS
        ; Explicit exports can go here
    AddOneFile
    // SetHeadFile
    //       YourFunc1
    //       YourFunc2使用是如此,写出来是为了让那些被不负责任的写书人害的同事们正确认识到这是可行的,而且我在VB和Delphi下专门作了测试,可以使用,没有任何问题!!