在Visual Studio 2010中使用C++。我正在將我的NULL
的轉換爲nullptr
的過程。用我的代碼這很好。但是,如果我打個電話給WINAPI如:在API函數調用中使用nullptr?
__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,似乎大多數工作無處不在但我得到以下行下面的錯誤:
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):nullptr '到 'DWORD_PTR' 8」 不能從轉換參數4'>甲 天然nullptr只能轉換爲bool或使用 的reinterpret_cast,爲整型
(注意:CMFCPropertyGridProperty是一個Microsoft MFC類)那麼這是什麼意思?
我不確定這是完全正確的閱讀[這裏](http://stackoverflow.com/questions/1282295/what-exactly-is-nullptr-in-c0x)。如果NULL被放置在某處,它應該是0之前,而不是用nullptr替換所有的NULL會破壞代碼。我看到無處不在的教程將句柄和各種變量類型設置爲NULL。不應分配爲nullptr的類型。 –
@Joe:我的回答的前提是NULL在指針的上下文中正確使用。 – GManNickG
@Gman:你可以對我的問題的更新發表評論 – User