在 Visual Studio 2010 中使用 C++。我正在将我NULL
的 's 转换为nullptr
's。使用我的代码,这很好。但是,如果我调用 WINAPI,例如:
__checkReturn WINOLEAPI OleInitialize(IN LPVOID pvReserved);
通常我会这样称呼它:
::OleInitialize(NULL);
我可以安全地使用nullptr
我会NULL
在这样的电话中使用的地方吗?
也就是说,我可以这样做:
::OleInitialize(nullptr);
也与 MFC api 相同:
CFileDialog fileDlg(TRUE, ".txt", NULL, 0, strFilter);
我可以更换吗
CFileDialog fileDlg(TRUE, ".txt", nullptr, 0, strFilter);
我想我可以,但我只是想确保没有陷阱。
更新
所以我经历并用 nullptr 替换了我所有的 NULL,它似乎在任何地方都可以工作,但是我在下一行收到以下错误:
propertyItem = new CMFCPropertyGridProperty(_T("SomeName"),
"SomeValue", "SomeDescription", nullptr, nullptr, nullptr, nullptr);
8>c:\something\something.cpp(118): 错误 C2664: 'CMFCPropertyGridProperty::CMFCPropertyGridProperty(const CString &,const COleVariant &,LPCTSTR,DWORD_PTR,LPCTSTR,LPCTSTR,LPCTSTR)' : 无法从 'nullptr 转换参数 4 ' to 'DWORD_PTR' 8> 原生 nullptr 只能转换为 bool 或使用 reinterpret_cast 转换为整数类型
(注意 CMFCPropertyGridProperty 是一个 Microsoft MFC 类)那是什么意思呢?