MFC(1):第一个MFC程序创建及遇见的问题解决

1 项目创建及代码编写

(1)创建一个win32空项目,创建完成后,右键属性-->项目默认值-->MFC的使用-->在共享 DLL 中使用 MFC-->确定

(2)编写头文件mfc.h

#include <afxwin.h>

class CMyApp : public CWinApp
{
public:
    //MFC程序的入口函数
    //基类的函数,子类继承重写
    virtual BOOL InitInstance();
};

class CMyFrame : public CFrameWnd
{
    public: 
        CMyFrame();
};

(3)创建源文件mfc.cpp

#include "mfc.h"

//创建唯一的应用程序对象
CMyApp app;

BOOL CMyApp::InitInstance()
{
    //创建框架类对象
    CMyFrame* myFrame = new CMyFrame;
    myFrame->ShowWindow(SW_SHOWNORMAL);
    myFrame->UpdateWindow();

    m_pMainWnd = myFrame;

    return TRUE;
}

CMyFrame::CMyFrame()
{
    Create(NULL, TEXT("MyWindow"));
}

 

2 遇到问题及解决办法

(1)IntelliSense: #error 指令: Please use the /MD switch for _AFXDLL builds

解决办法:

工程(Project)-> 属性(Properties)-> 配置属性(Configuration Properties)-> c/c++-> 

代码生成(Code Generation)->运行库(Use run-time library)->多线程调试DLL(/MD)

 

(2) LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library  

方案一:【项目】->【属性】->【配置属性】->【连接器】->【输入】->【忽略指定库】,输入:msvcrt.lib

方案二:【项目】->【属性】->【配置属性】->【连接器】->【命令行】,输入:/NODEFAULTLIB:msvcrt.lib

 

3 使用win32控制台创建mfc项目时遇到的问题分析

errorLNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用

因为控制台应用程序的入口(main)与Win32程序的入口(WinMain)是不一致,因此导致该错误。

解决方法:

【项目】->【属性】->【配置属性】-> C/C++ ->预处理器 -> 预处理器定义 ,设置为WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);

【项目】->【属性】->【配置属性】-> 【连接器】 -> 【系统】 -> 【子系统】的/subsystem:console改为/subsystem:windows.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小薛引路

喜欢的读者,可以打赏鼓励一下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值