Use*_*ser 6 c++ null winapi mfc nullptr
在Visual Studio 2010中使用C++.我正在将我的转换NULL为nullptr.用我的代码这很好.但是如果我打电话给WINAPI,例如:
__checkReturn WINOLEAPI OleInitialize(IN LPVOID pvReserved);
Run Code Online (Sandbox Code Playgroud)
通常我会称之为:
::OleInitialize(NULL);
Run Code Online (Sandbox Code Playgroud)
我可以安全地使用nullptr我NULL在这样的电话中使用的地方吗?
也就是说,我可以这样做:
::OleInitialize(nullptr);
Run Code Online (Sandbox Code Playgroud)
与MFC api一样:
CFileDialog fileDlg(TRUE, ".txt", NULL, 0, strFilter);
Run Code Online (Sandbox Code Playgroud)
我可以更换吗?
CFileDialog fileDlg(TRUE, ".txt", nullptr, 0, strFilter);
Run Code Online (Sandbox Code Playgroud)
我猜我可以,但我只是想确保没有陷阱.
UPDATE
所以我通过nullptr替换了我的所有NULL,它似乎在所有地方工作,但是我在下面的行中得到以下错误:
propertyItem = new CMFCPropertyGridProperty(_T("SomeName"),
"SomeValue", "SomeDescription", nullptr, nullptr, nullptr, nullptr);
Run Code Online (Sandbox Code Playgroud)
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类)那么这是什么意思?
GMa*_*ckG 13
是的,您可以安全地使用nullptr您使用的任何地方NULL.
NULL扩展为值为零的整型常量表达式,然后可以将其转换为任何类型的空指针值.nullptr是"指针文字",完全相同:它转换为任何类型的空指针值.
更多信息在这里.
| 归档时间: |
|
| 查看次数: |
2401 次 |
| 最近记录: |