• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

怎样在非MFC程序中使用MFC类??

dongdandan 2002-05-14 12:32:29
我在VC++6.0中新建了一个.h和.cpp文件,然后将编译.cpp文件。
后来我想在.cpp中使用CString这个类:
#include <stdio.h>
#include <windows.h>
#include <winioctl.h>
#include "addxy.h"
#include <afx.h>

void main()
{
HANDLE hDevice;
CString name="abcd";
.....
}
编译后产生错误如下:
c:\program files\microsoft visual studio\vc98\include\winuser.h(3747) :warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\winuser.h(3749) :warning C4067: unexpected tokens following preprocessor directive - expected a newline
c:\program files\microsoft visual studio\vc98\mfc\include\afxv_w32.h(14) : fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>
Error executing cl.exe.
Creating browse info file...
BSCMAKE: error BK1506 : cannot open file '.\Debug\addxy.sbr': No such file or directory
Error executing bscmake.exe.

addxy.exe - 2 error(s), 2 warning(s)
请问各位,我怎样做才可以在非MFC程序中引用CString
...全文
6 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cwanter 2002-05-14
首先,在文件中加入如下语句:
#include <afx.h>
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions
在WinMain()的开始加入
if (!AfxWinInit(hInstance, NULL, lpCmdLine, 0))
{
// TODO: change error code to suit your needs
MessageBox(NULL,"Can't !","Error!",MB_OK);
}
然后在project->setting->general中设置USE MFC IN A SHARE DLL or use mfc in a static library (无所谓,任一都不影响)。
在project->setting->link->object/library module中加入kernel32.lib user32.lib gdi32.lib (这是关键,你所说的链接错误就是因为没有加这些库文件所致)一切OK,然后你就可以用MFC类了。
回复
zbde00 2002-05-14
你上面的程序是一个windows console 程序,这样的程序,你就不要包含windows.h了
下面代码调试通过

#include "iostream.h"
#include "afx.h"

int main() {

CString astring("i love you");
cout<<astring<<endl;
return 0;
}

别忘了
你做了下面的设置没有?
project/setting/General/
把not using mfc改为usimg mfc in a shared dll
回复
cwanter 2002-05-14
http://www.csdn.net/expert/topic/710/710822.xml?temp=.3868524
回复
zbde00 2002-05-14
首先,这肯定是能够做到的

你做了下面的设置没有?
project/setting/General/
把not using mfc改为usimg mfc in a shared dll
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2002-05-14 12:32
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……