たぶん誰も私にこれを説明することができます条件演算子「:?」とLPCTSTR機能ヘッダー内の
bool Func1(LPCTSTR sData)
{
if (sData) { ... }
}
そして、私はこのような関数を呼び出し:
CString str = _T("");
Func1((str.IsEmpty() ? NULL : str));
そして「SDATA」内部の機能NULLは決してありません、それは常に空文字列ですがNULLではないのです、なぜですか? 編集されたコードは次のとおりです。
LPCTSTR strNull = NULL;
Func1((str.IsEmpty() ? strNull : str));
この場合は正しく動作します。
'Func1((str.IsEmpty()?NULL:str));' VS2015でコンパイルされず、 'エラーC2446 'を取得します:': 'CString'から 'int'への変換なし\t ... ' –