我试图在静态文本小部件中放入一些文本,如下所示:
m_StartupTime.SetWindowText(someStringVariable);
Run Code Online (Sandbox Code Playgroud)
并得到一个错误:
'CWnd :: SetWindowTextA':无法将参数1从'std :: string'转换为'LPCTSTR'
我尝试过使用该c.str()方法,但是当我这样做时,程序编译得很好,但在运行时崩溃,抛出一个错误:

所以我正在弄清楚问题是否与转换有关,还是除此之外的其他问题?
使用CString并没有解决问题,我尝试从Unicode字符集切换到Multi-Byte,但没有成功.哦,我在MFC开发.
编辑:找到解决方案!我使用了CString类.
string a = "smth";
CString str(a.c_str());
Run Code Online (Sandbox Code Playgroud)
Assert对话框显示断言发生的位置:file winocc.cpp,第246行.
查看代码,这是该文件中的行:
ENSURE(::IsWindow(m_hWnd) || (m_pCtrlSite != NULL));
Run Code Online (Sandbox Code Playgroud)
看来你的断言与字符串无关,但控件不存在(还有?),即控制窗口无效或不存在.
| 归档时间: |
|
| 查看次数: |
2064 次 |
| 最近记录: |