在Visual Studio 2010中使用C.我正在将NULL转换为nullptr.用我的代码这很好.但是如果我打电话给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);
我猜我可以,但我只是想确保没有陷阱.
UPDATE
所以我通过nullptr替换了我的所有NULL,它似乎在所有地方工作,但是我在下面的行中得到以下错误:
propertyItem = new CMFCPropertyGridProperty(_T("SomeName"),
"SomeValue", "SomeDescription", nullptr, nullptr, nullptr, nullptr);
8>c:\something\something.cpp(118): error C2664:
‘CMFCPropertyGridProperty::CMFCPropertyGridProperty(const CString
&,const COleVariant &,LPCTSTR,DWORD_PTR,LPCTSTR,LPCTSTR,LPCTSTR)’ :
cannot convert parameter 4 from ‘nullptr’ to ‘DWORD_PTR’ 8> A
native nullptr can only be converted to bool or, using
reinterpret_cast, to an integral type
(注意CMFCPropertyGridProperty是Microsoft MFC类)那么这是什么意思?