VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 505|回复: 2

[讨论] 关于CPropertySheet使用多字节编码抛出异常的问题

[复制链接]
46_avatar_middle
最佳答案
0 
online_vip 发表于 2021-4-20 19:01:39 | 显示全部楼层 |阅读模式
本帖最后由 htttg 于 2021-4-20 22:05 编辑

大家好,我在单文档的CFormView中放了一个属性表,里面有3个页面,是在属性表的构造函数里添加的页面。
现在的问题是如果使用Unicode编码正常,如果改成多字节编码,执行到CFormView::OnCreate()函数中创建属性表的时候,就会抛出0xC0000005异常,提示访问违例,想不出来什么原因,请大家指教。

int CMainView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
        if (CFormView::OnCreate(lpCreateStruct) == -1)
                return -1;

        CRect rect;
        GetWindowRect(&rect);

        m_sheet.Create(this, WS_CHILD | WS_VISIBLE, 0);

        m_sheet.ModifyStyleEx(0, WS_TABSTOP);
        m_sheet.SetWindowPos(NULL, 0, 0, rect.right - rect.left, rect.bottom - rect.top, SWP_NOACTIVATE);
        CTabCtrl* m_tabctrl = m_sheet.GetTabControl();
        m_tabctrl->SetWindowPos(NULL, 0, 0, rect.right - rect.left, rect.bottom - rect.top, SWP_NOACTIVATE);
}
附件是工程,希望各位大侠给指点一下,这个是把AddPage放在View的OnCreate函数里面的,问题和放在CPropertySheet的构造函数里是一样的。
关于CPropertySheet使用多字节编码抛出异常的问题 propsheet.rar (140.3 KB, 下载次数: 1)




上一篇:C学习之路的点滴记录 基础语法玩转hello 大牛飘过
下一篇:C学习之路的点滴记录基础语法练习(数组巩固) 大牛飘过
70_avatar_middle
最佳答案
48 
在线会员 发表于 2021-4-21 14:04:57 | 显示全部楼层
试了一下可以运行。。。。vs2019 x64 debug MultiByte
46_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-4-21 15:06:28 | 显示全部楼层
本帖最后由 htttg 于 2021-4-21 17:12 编辑

谢谢楼上。我用的是VS2015。查了一下资料,似乎CPropertySheet在创建的时候都有这个问题,MSDN也提到了会报异常,但没说是多字节编码引起来的,说是由字体资源导致的。可以忽视它,不会影响后面程序的运行。
我试验的结果也确实如此,没有什么影响,程序运行一切正常。
附图是所参生的异常及调用堆栈。

关于CPropertySheet使用多字节编码抛出异常的问题

关于CPropertySheet使用多字节编码抛出异常的问题
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2021-10-17 06:02

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表