今天被CString类型坑惨了!再写注入工具时,程序编译无误但一直无法正确注入。最后发现是Mfc Edit Browse Control控件中的获取路径发生了问题!

反复调试 CString 直接输出是 十六进制地址!且无法直接强制转化为 char 类型,在强转为LPCSTR 再转char,又或者getString()再转char ,文件路径的’\ ‘符号被解释为转义字符。

于是路径变为C:...........或者无法显示。如图:

MFC 正确获得 Mfc Edit Browse Control 的文件路径   

 MFC 正确获得 Mfc Edit Browse Control 的文件路径

 

通过多方面查找资料和调试 最终发现 使用W2A 宏 转义可以翻译为正确字符串,得到正确文件路径!

MFC 正确获得 Mfc Edit Browse Control 的文件路径

正确格式为:(char *)W2A(pszPath)      

别忘了在使用W2A之前 先声明    USES_CONVERSION;

不得不说CString类型 有够ex人。

 

 

相关文章: