我写了一个方法,将表单CString
转换为const char *
:
const char* CAESDlg::ConvertToChar(CString str) {
CStringA charstr(str);
const char *cstr = (const char *)charstr;
return cstr;
}
但是当试图将其放入const char *
时,它不会返回正确的值!
const char *test = ConvertToChar(filePath);
答案 0 :(得分:1)
在不知道CStringA
和CString
的情况下我只能猜测,但是当你访问指针指向的值时,好像你正在返回指向局部变量(UB)的指针
如果您想将const char*
对象用作ConvertToChar
参数,则可能需要使用LPCTSTR而不是自编UICatalog
函数。
答案 1 :(得分:1)
charstr
的值在函数结束时被销毁,然后调用者将其赋值给变量。
您不需要某个功能,来电者可以直接使用CStringA
并注意test
在sFilePathA
超出范围之前有效。
CStringA sFilePathA(filePath);
const char *test = sFilePathA;