0

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

CCombobox m_obs;
CString temp;

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

但是,我得到的错误strtod()是不存在合适的转换函数 from CStringto const char *

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

4

3 回答 3

2

尝试改为CStringA强制使用 Ansi 版本,否则 CString 取决于编译器开关,其中 UNICODE 是默认的。

于 2012-11-22T13:35:08.803 回答
1

strtod()期待const char * str第一个论点。你应该做:

const char* cstr = (LPCTSTR)temp;
double newObs = strtod(cstr, NULL);
于 2012-11-22T11:43:38.343 回答
1

感谢您的回复。

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

double NewObs = wcstod(temp, NULL);
于 2012-11-22T13:29:14.683 回答