expandenvironmentstrings(ExpandEnvironmentStrings函数的第二个参数的使用要注意「终于解决」)

发布时间:2025-12-10 19:53:23 浏览次数:2

ExpandEnvironmentStrings函数的第二个参数的使用要注意「终于解决」-

ExpandEnvironmentStrings函数的第二个参数的使用要注意「终于解决」今天写了一个新类,然后在里面写了ExpandEnvironmentStrings这个函数的调用,灰常高兴得把类封装好了之后,拿到外部调用的时候,在delete的时候肯定会崩溃,我单步,也看了各种数据,都正常,后来我们组长看了一眼就知道了,不亏是专家。下面我上一点代码:classCFileAssociation { public: CFileAssociation(); ~CFil

今天写了一个新类,然后在里面写了ExpandEnvironmentStrings这个函数的调用,灰常高兴得把类封装好了之后,拿到外部调用的时候,在delete的时候肯定会崩溃,我单步,也看了各种数据,都正常,后来我们组长看了一眼就知道了,不亏是专家。下面我上一点代码:

class CFileAssociation{public:CFileAssociation();~CFileAssociation();public:TCHAR m_strDesk;};

是否还在为Ide开发工具频繁失效而烦恼,来吧关注以下公众号获取最新激活方式。亲测可用!

为防止网络爬虫,请关注公众号回复”口令”

激活idea 激活CLion DataGrip DataSpell dotCover dotMemory dotTrace GoLand PhpStorm PyCharm ReSharper ReShaC++ Rider RubyMine WebStorm 全家桶 刷新

【正版授权,激活自己账号】:Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】:官方授权 正版激活 自己使用,支持Jetbrains家族下所有IDE…


CFileAssociation::CFileAssociation(){ExpandEnvironmentStrings(TEXT("%USERPROFILE%\\Desktop"), &m_strDesk, MAX_PATH);}CFileAssociation::~CFileAssociation(){ }

然后我外部调用了:
CFileAssociation *file = new CFileAssociation();<span style="white-space:pre"></span>...//中间没什么,不写了,商业秘密。delete file;
结果只要delete就崩溃,很蛋疼的一件事情。

到这里大家能看出来哪里错了吗?

其实就是ExpandEnvironmentStrings第二个参数的问题,因为第二个参数必须要是类自己的内存空间,所以一般用的一定都是数组,要在类里面被释放掉,否则会遇到越界崩溃的问题。

只需要这么写即可

class CFileAssociation{public:CFileAssociation();~CFileAssociation();public:TCHAR m_strDesk[MAX_PATH];};CFileAssociation::CFileAssociation(){ExpandEnvironmentStrings(TEXT("%USERPROFILE%\\Desktop"), m_strDesk, MAX_PATH);}CFileAssociation::~CFileAssociation(){ }


















需要做网站?需要网络推广?欢迎咨询客户经理 13272073477