0

MFC DOC/VIEW アプリで変換 LPCTSTR パラメーター (szNewChr) を使用していくつかのエラーが発生しました。エラー: エラー C2664: 'int ATL::CStringT::Find(wchar_t,int) throw() const' : パラメーター 1 を変換できません'const char [2]' を 'wchar_t' に変換し、atof メソッドでエラーが発生しました: error C2664: 'atof' : cannot convert parameter 1 from 'CString' to '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;

ダイアログベースのアプリとして完璧に機能したことを確認したいと思います... よろしくお願いします。

4

1 に答える 1

1

これは、マルチバイトとユニコードに関連する問題だと思います。[プロパティ] -> [一般] -> [文字セット] から、プロジェクトを「複数バイト文字セットを使用する」モードに切り替えます。

それでも Unicode モードを使用する場合は、すべての定数文字列を "..." から _T("...")、'*' から _T('*') に変更します。atof を _ttof に変更します。

于 2013-08-30T21:57:41.053 に答える