我的应用程序中有以下代码行:
CString strAppName = AfxGetAppName();
Run Code Online (Sandbox Code Playgroud)
有时它会填满strAppName垃圾字符,我无法弄清楚原因.
有人有主意吗?
TIA.
如果m_pszAppName手动更改,则可以执行此操作.
在应用程序初始化的最开始,
AfxWinInit调用CWinApp::SetCurrentHandles缓存m_pszAppName指针的当前值,如下所示:
pModuleState->m_lpszCurrentAppName = m_pszAppName;也就是说,模块状态结构保存
m_pszAppName指针的副本.如果您按照MSDNm_pszAppName中的InitInstance建议进行更改,则仍然具有旧的指针值pModuleState->m_lpszCurrentAppName.该AfxGetAppName()函数返回AfxGetModuleState()->m_lpszCurrentAppName.
您可以在m_lpszCurrentAppName上添加数据断点m_pszAppName.它在<...>\Microsoft Visual Studio 9.0\VC\atlmfc\src\mfc\appinit.cpp文件中初始化.您将看到该变量发生了什么以及谁正在尝试更改它.
| 归档时间: |
|
| 查看次数: |
1486 次 |
| 最近记录: |