WINDOWS.H already included. MFC apps must not #include <windows.h>我是添加了一个CMySocket类。
class CMySocket :public CSocket怎么解决呢?难到就能使用MFC的类了吗?
class CMySocket :public CSocket怎么解决呢?难到就能使用MFC的类了吗?
解决方案 »
- 多线程MapViewOfFile大文件,分段映射能否重叠?
- 关于加载.tlb文件的问题
- 用完成端口写了个ftp服务器,请各位大侠赐教,小弟献丑了!
- 如何hook send? 请给我源码,谢谢!!
- 想给 Shell ToolBar 添加 XP Theme 的支持
- 请高手指教!!!^_^
- 如何在MFC程序中添加automation选项,在线等待
- 怎样做bitmap按钮
- vc6.0下一个关于模板的问题,有难度,请帮忙看看!
- 各位大虾帮帮忙,帮小弟看看程序在release版本下为什么出错。
- 100分的难题:我的程序用了guilib库,结果发现在XP下经常会出现“无效的挂钩句柄”
- MFC入门程序竟然都运行不了
VC的Atl工程为我们提供了很好的创建COM工程的方法,可是想要在Atl工程里面使用MFC里的对象(如CString,CFile)却并不容易,这对于那些原本熟悉MFC类库的程序员来说实在是一个很大的麻烦.这里就介绍一下如何在Atl中使用mfc类库:
Atl的工程包括三种类型,ActiveDll, ActiveExe以及Service。 对于ActiveDll工程,只需要在建立工程的时候选择MFC support,就可以了。对于ActiveExe和Service工程,就没有那么简单了。我每次在工程中加入MFC的头文件(如afx.h),都会出现如下的错误:
fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>
出现这样的错误是因为头文件定义中有如下语句:
#ifdef _WINDOWS_
#error WINDOWS.H already included. MFC apps must not #include <windows.h>
#endif
问题就出在atlbase和afx这两个头文件上,afx头文件会引用afxv_w32.h这个文件。它会检查当前头文件中是否已经引用了windows.h,如果引用了就直接报错。通常出现这种情况,我们只需要略过重复的引用和定义即可,为什么在这里强制定义这种情况为异常,其用意实在无法猜测。不过还在我们可以绕过这种情况,其方法就是将对afx.h的引用放在对atlbase文件的引用之前。上述的错误断言就不会出现了,不过到此还没有完全解决,我们还需要在工程设置的General项中将“Not using MFC”改为另外两种之一。这样我们就能直接在Atl的工程中使用MFC中定义的类了。 http://www.cdown.net/Info/34646.html
CG fatal error LNK1169: 找到一个或多个多重定义的符号
CG warning LNK4006: _DllMain@12 已在 CG.obj 中定义;已忽略第二个定义还是会出错。变成这些错误了。我用的是vc7