今天被CString类型坑惨了!再写注入工具时,程序编译无误但一直无法正确注入。最后发现是Mfc Edit Browse Control控件中的获取路径发生了问题!
反复调试 CString 直接输出是 十六进制地址!且无法直接强制转化为 char 类型,在强转为LPCSTR 再转char,又或者getString()再转char ,文件路径的’\ ‘符号被解释为转义字符。
于是路径变为C:...........或者无法显示。如图:
通过多方面查找资料和调试 最终发现 使用W2A 宏 转义可以翻译为正确字符串,得到正确文件路径!
正确格式为:(char *)W2A(pszPath)
别忘了在使用W2A之前 先声明 USES_CONVERSION;
不得不说CString类型 有够ex人。