【发布时间】:2011-12-18 00:45:33
【问题描述】:
在 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)' : 无法将参数 4 从 'nullptr' 转换为 'DWORD_PTR' 8> A 本机 nullptr 只能转换为 bool 或,使用 reinterpret_cast,转为整型
(注意 CMFCPropertyGridProperty 是 Microsoft MFC 类)那是什么意思?
【问题讨论】:
标签: c++ winapi mfc null nullptr