MFC常见问题汇总【累计4个】

常见问题一:

提示:IDD_DIALOG1是未声明的标识符。

解决办法是:在该对话框类的头文件中添加:#include "resource.h"


常见问题二:

error C2664: “atoi”: 不能将参数 1 从“CString”转换为“const char *"

说明及解决办法:

在vc6.0下用CString str;num = atoi(str);就可以顺利取到num;
但是同样代码拿到vs2008就报错,error C2664: “atoi”: 不能将参数 1 从“CString”转换为“const char *”;
于是把CString 强制转换为char*,num = atoi((LPSTR)(LPCTSTR)str);
编译不报错,运行成功。但是后面发现,本来str="123",num应该是123,结果却只是1,试了其他的都是只取最前面一位。
后面百度中无意发现,原来是,vc6.0默认是ansi编码,所以atoi可以直接用,结果也正确;但是VS2008默认的编码方式是Unicode,Unicode下不能用atoi,而要使用_wtoi 也可以直接使用_ttoi,它在 ANSI 编码系统中被编译成atoi(),而在 Unicode 编码系统中编译成_wtoi()。或者把vs改成ansi编码也行。
num = _ttoi(str);(_ttoi类似于_T,随着编码方式会改变)。


常见问题三:

在单文档中屏蔽菜单。

可以直接在BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)代码中添加如下代码:

RECT rect;
	::GetWindowRect(GetDesktopWindow()->m_hWnd, &rect);
	if (cs.hMenu != NULL)
	{
		cs.hMenu = NULL;
	}

常见问题四:

在MFC中遇到以下问题,Debug中可编译通过,Release版本编译不通过的一般是字符集的问题。


一般是将:项目属性->配置属性->常规->项目默认值 下的字符集 改为:使用多字节字符集 即可。


该问题已验证通过。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值