关于Cwnd::Create()函数出现afxwin1.inl line:21错误的解决方法

我最近在调试一个dll时,出现了一个莫名的断言错误,就是在主程序中创建由MFC 扩展DLL导出的一个控件(该控件继承自CWnd类)时,一调用Create()函数就出现下面的的断言错误:

调试跟进去:

file:afxwin1.inl

line:21

发现是下面的断言语句报错:

_AFXWIN_INLINE HINSTANCE AFXAPI AfxGetResourceHandle()

{

ASSERT(afxCurrentResourceHandle != NULL);//这里出错!

return afxCurrentResourceHandle;

}

费了很大的周折才解决,其实就是犯了一个很低级的错误,dll的字符集不匹配,mfc dll的字符集为UNICODE,但 我调用Create()函数时传进去的窗口名为ansi字符集,所以不匹配!

时间: 2025-01-08 21:51:57

关于Cwnd::Create()函数出现afxwin1.inl line:21错误的解决方法的相关文章

左右Cwnd::Create()功能出现afxwin1.inl line:21错误的解决方案

我最近在调试dll时刻,有一种模糊的断言错误,它是由主程序创建MFC 扩张DLL控制出口(从控制继承CWnd分类)时刻,呼叫Create()下列说法错误的功能: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2JOb3Rlcw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" > 调试跟进去: file:afxwin1.inl line:21 发

在WSL中安装swool报错 error: unrecognized command line option '-V' 的解决方法

Windows Subsystem for Linux Ubuntu中使用pecl安装swool时遇到错误"error: C compiler cannot create executables"."error: unrecognized command line option '-V'" 解决方法 先看解决方法, 将gcc版本降低到4.8即可,因为高版本gcc取消了-V参数: sudo apt install gcc-4.8 -y sudo update-alte

python3 安装scrapy Exception: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/pip/req/req_install.py", line 1006, in check_if_exists解决方法

错误代码: Exception: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/pip/req/req_install.py", line 1006, in check_if_exists self.satisfied_by = pkg_resources.get_distribution(str(no_marker)) File "/usr/share/python-wheel

孙鑫视频改变窗口过程函数中出现error C2440错误的解决方法

在Visual Studio 2010中,即使代码是完完全全按照孙鑫视频中的敲,也会在出现error C2440,这是因为开发平台由VC6.0升级至VS2010,需要将原有的项目迁移.VS2010对消息的检查更为严格,以前在VC6.0下完全正常运行的消息映射在VS2010下编译不通过. 百度了解决方法如下(亲测可用): 例如:TestDlg.cpp中ON_REGISTERED_MESSAGE(WM_INITDIALOG, &CTestDlg::OnInitDialog):第一:把原来的消息函数返

Delphi “Invalid floating point operation.”错误的解决方法(使用System单元提供的Set8087CW函数禁用浮点异常)

这两天用webbrower写东西,有时候打开SSL加密网站时会出现”Invalid floating point operation.”的错误,上网搜了下,把解决方法贴上. 导致原因 在Delphi2011中需要通过浮点单位控制指令设置浮点运算单位.浮点单位控制指令控制着浮点运算的精度.四舍五入的方式以及特定的浮点运算是否触发异常.可以参阅Intel处理器的详细文档. 在Delphi2011中有函数可以直接访问处理器的控制指令.比如,可以使用Set8087CW函数改变8087CW控制指令的值,从

vscode下搭建typescript时提示"无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称"错误的解决方法

根据网上的教程,安装了node.js后,再安装了typescript,,,这时候编译生成或者在vscode的终端里调用npm或者tsc --version时,总是提示 npm : 无法将“npm”项识别为 cmdlet.函数.脚本文件或可运行程序的名称.请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次. 所在位置 行:1 字符: 1 + npm install typescript --save -dev + ~~~ + CategoryInfo : ObjectNotFound:

php中函数move_uploaded_file()移动中文文件报错的解决方法

在windos中文系统上要求传入的参数如果有中文必须是GBK编码 1.用iconv()转换字符集代码如下 $target_pt = './uploads/'.uniqid().'-'.$images['name']; //windows下支持中文名字上传 $upload_file_pt = iconv("UTF-8", "GB2312", $target_pt); if (!move_uploaded_file($images['tmp_name'], $uploa

WORD Application.Documents.Open函数返回null的一种解决方法

DCOM Config Setting for "Microsoft Office Word 97 - 2003 Document" 内部配置一切正常,但Application.Documents.Open函数还是返回null.下面是一个解决方法: "C:\Windows\SysWOW64\config\systemprofile\"目录下创建一个"Desktop"目录. WORD Application.Documents.Open函数返回nu

MySQL函数不能创建的解决方法

MySQL函数不能创建,是一个很麻烦的问题,下面就为您提供了一个解决此问题的方法,如果您也遇到过类似的问题,不妨一看. http://database.51cto.com/art/201010/229918.htm 在使用MySQL数据库时,有时会遇到MySQL函数不能创建的情况.下面就教您一个解决MySQL函数不能创建问题的方法,供您借鉴参考. 出错信息大致类似: ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO S