2011-10-29 7 views
5

Visual Studio 2010でC++を使用しています。私はNULLnullptrに変換しています。私のコードでこれは問題ありません。API関数呼び出しでnullptrを使用していますか?

::OleInitialize(NULL); 

私は無事に私はこのような呼び出しでNULLを使用しているだろうnullptrを使用することができます。通常、私は、これはなどと呼ばれているでしょう

__checkReturn WINOLEAPI OleInitialize(IN LPVOID pvReserved); 

:私は、コールのようなWINAPIする作るがあれば?ある

、私はこれを行うことができます。

MFCのAPIと同じまた
::OleInitialize(nullptr); 

:私は私がすることができますが、私推測している

CFileDialog fileDlg(TRUE, ".txt", NULL, 0, strFilter); 

は私が

CFileDialog fileDlg(TRUE, ".txt", nullptr, 0, strFilter); 

を置き換えることができますちょっとしたことがないことを確認したいだけです。

UPDATE

だから私は通過したと私のすべてのNULLのnullptrとを置き換えて、私は次の行に以下のエラーを取得していますが、ほとんどどこでも動作するようです:

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)は:DWORD_PTR '8 'を' nullptr」 からパラメータ4を変換することはできません'> ネイティブnullptrは、一体型に、 reinterpret_castはを使用して、ブールまたはに変換することができる

(注:CMFCPropertyGridPropertyはMicrosoft MFCクラスです)どういう意味ですか?

答えて

12

はい、NULLをどこでも使用して安全にnullptrを使用できます。

NULL値がゼロの整数定数式に展開されました。この定数式は、任意の型のNULLポインタ値に変換できます。 nullptrはまったく同じことをする "ポインタリテラル"です:それは任意の型のヌルポインタ値に変換します。

詳細情報here

+3

私はそれが[ここ](http://stackoverflow.com/questions/1282295/what-exactly-is-nullptr-in-c0x)の読解から真実であるかどうかはわかりません。もしどこかにNULLが置かれていたら、NULLをNULLptrで置き換えるだけでなく、0になっていなければなりません。ハンドルや変数の型をNULLに設定するチュートリアルがどこにでもあります。 nullptrとして割り当てるべきではない型。 –

+2

@ジョー:私の答えの前提は、ポインタの文脈でNULLが正しく使われているということです。 – GManNickG

+0

@Gman:私の質問 – User

関連する問題