将CString赋值给类成员时CS_AuthFileName始终为空的问题求助
问题根源
核心错误是类成员变量名和赋值时使用的变量名拼写不匹配:
- CWav类中定义的公开成员变量名为
CS_AuthFileName - main.cpp中赋值时错误写为
Wav_player.AuthFileName,缺少前缀CS_,相当于给类不存在的成员赋值,类原本的CS_AuthFileName自然不会被修改,会一直保持空值。
修复方案
直接修改main.cpp中的赋值语句,使用正确的类成员名即可:
// 替换原有错误的赋值语句 Wav_player.CS_AuthFileName = AuthFile;
异常排查补充
如果修改后仍存在赋值为空的问题,可以按以下步骤确认:
- 断点或打印查看赋值前的
AuthFile值是否正常,若原strFile长度不足3,Truncate操作会出现异常,直接导致AuthFile为空 - 确认main.cpp中已经正确引入CWav类的定义头文件,避免编译阶段隐式处理类定义导致的异常
- 排查是否存在同名局部变量覆盖类成员的情况
内容的提问来源于stack exchange,提问作者Omar
相关产品推荐
相关产品推荐

