MFC转换错误

时间:2013-08-30 21:19:37

标签: mfc

我的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;

我想注意它完全可以作为基于对话框的应用... 提前谢谢。

1 个答案:

答案 0 :(得分:1)

我认为这是一个与多字节和unicode相关的问题。从Properties-> General-> Character Set切换项目为'Use Multiple-Byte Character Set'模式。

如果您仍想使用Unicode模式,请将所有常量字符串从“...”更改为_T(“...”),将“*”更改为_T('*')。改变为_ttof。