将字符串从组合框转换为double

时间:2012-11-22 11:37:34

标签: c++ visual-c++ mfc

我正在尝试执行以下操作:

CCombobox m_obs;
CString temp;

m_obs.GetWindowTextA(temp);
double newObs = strtod(temp, NULL);

但是,我在strtod()中收到错误,指出CStringconst char *之间没有合适的转化函数。

如何将字符串从组合框转换为双倍?

3 个答案:

答案 0 :(得分:2)

尝试使用CStringA来强制使用Ansi版本,否则CString依赖于UNICODE默认的编译器开关。

答案 1 :(得分:1)

strtod()期望第一个参数const char * str。 你应该这样做:

const char* cstr = (LPCTSTR)temp;
double newObs = strtod(cstr, NULL);

答案 2 :(得分:1)

感谢您的回复。

对于UNICODE项目,请执行以下操作:

double NewObs = wcstod(temp, NULL);