我写了个MFC DLL,里面有一些接口,能不能用纯C++来调用它,我写了个控制台程序,引入头文件时报错,
include 'stdafx.h' before including this file for PCH
请问这个问题怎么解决

解决方案 »

  1.   

    我写了个MFC   DLL,里面有一些接口,能不能用纯C++来调用它
    有些能
    第二个问题clean rebuild试试看
      

  2.   

    每个cpp文件应最先包含stdafx.h头文件。
      

  3.   

    我吧预编译选项去了,但是还是不行
    问题是这样的,我要写一个操作数据库的DLL,并且这个DLL要提供给纯C语言调用
    我想到了用ADO操作数据库,所以我用MFC Appwizard dll写好了接口,
    然后就发现问题了,在纯C的那个模块里引入头文件时编译不过,我估计是因为纯C没引入stdafx,
    所以我想知道用mfc appwizard dll写的DLL是不是只能被MFC框架下的程序调用,纯C或者c++是不是不能调用
      

  4.   

    纯C和stdafx.h没关系,这就是一个预编译的头文件.C可以调用mfc appwizard dll写的DLL,代价是当你用C实现时候,写标准DLL写几百遍的时间都有了.
    你还是包装成标准DLL吧,
      

  5.   

    但是我原先写的用了很多MFC的类,如CString,如今写标准DLL,那我可能要改很多代码
      

  6.   

    用ADO 的话,在c++中AfxOleInit没办法初始化
      

  7.   

    有这些呢
    CoInitialize
    CoInitializeEx
    CoUninitialize
      

  8.   

    error C2065: 'CoInitialize' : undeclared identifier
    error C2065: 'CoInitializeEx' : undeclared identifier
    error C2065: 'CoUninitialize' : undeclared identifier我引入头文件Objbase.h链接了Ole232.lib还是编译不过
      

  9.   

    MFC  C++类库,你不使用C++
    使用MFC能有啥好处啊?啥模型都不能用啊。而且你还得把所有和C++有关的特性藏起来,还是从API做,不要考虑封装了:)至于CoIninitialize,你包含objbase.h应该就可以了,你是在报错的代码前面包含的?有没有其他错误?
      

  10.   

    'CoInitialize'   我记得缺省VC6就足够了,不需要修改颁本宏
      

  11.   

    网上找了无数种方法,到现在还是不知道怎么在控制台程序里初始化com
    你们说的都试了,还是不行
      

  12.   

    去掉了杂七杂八的头文件,发现不用引入任何头文件,就能调用CoInitialize
    谢谢两位了,这就结贴