1.代码
Cstring str;
str.LoadString(IDS_TEST);//IDS_TEST为资源string table中的字符串宏,对应字符串XXX
2.问题背景:A模块和B模块,A中操作菜单,菜单响应函数调到B模块中,并弹框提示XXX。
结果发现弹框中没有字符串,GetLastError()发现LoadString返回值位716,没有匹配上资源中的字符串。
3.定位过程:发现将LoadString()中的宏编号换成A模块的,就可以弹框提示。
发现B模块的对话框类CtestDlg中字符串可以正常加载(LoadString)。
4.解决办法:
在B模块弹框提示前进行资源转换,加上下面一行代码。
AFX_MANAGE_STATE(AfxGetStaticModuleState());
5.参考:https://blog.csdn.net/liubing8609/article/details/46918047