我的MFC DOC / VIEW应用程序中有一些错误,转换LPCTSTR参数(szNewChr),错误:错误C2664:'int ATL :: CStringT :: Find(wchar_t,int)throw()const':无法转换参数1从'const char [2]'到'wchar_t', 在atof方法中,我收到错误:错误C2664:'atof':无法将参数1从'CString'转换为'const char *'
这是我的方法:
void CmojaView::UpdateResultsWnd(LPCTSTR szNewChr)
{
// Ensure we are not trying to add a second decimal point!
if(szNewChr == "." && m_strCurrentEntry.Find(".") != -1)
return;
// Update the private member variables
m_strCurrentEntry+=szNewChr;
CString strCurrentEntry(m_strCurrentEntry);
strCurrentEntry.Remove('*');
strCurrentEntry.Remove('/');
m_fResultsWndValue=atof(strCurrentEntry);
m_nClearBtnStatus=0;
}
这些是.h文件中定义的数据成员:
CString m_strCurrentEntry;
double m_fResultsWndValue;
double m_fRunningTotal;
char m_cLastOp;
int m_nClearBtnStatus;
double m_fMemory;
UINT m_nLastKey;
我想注意它完全可以作为基于对话框的应用... 提前谢谢。
答案 0 :(得分:1)
我认为这是一个与多字节和unicode相关的问题。从Properties-> General-> Character Set切换项目为'Use Multiple-Byte Character Set'模式。
如果您仍想使用Unicode模式,请将所有常量字符串从“...”更改为_T(“...”),将“*”更改为_T('*')。改变为_ttof。