在我的C++/CLI库中,我得到了编译器错误:
error C2065: 'NULL' : undeclared identifier
为什么会发生这种情况?注意:我将非托管指针的值设置为NULL,而不是托管clr对象指针。
我知道我可以将NULL
定义为0,但这并不能回答为什么会突然发生这种情况。我在其他地方使用NULL
,一切都很好。
如果我将Windows.h
添加到我的stdafx.h包含文件中,那么我会收到与其他dll链接的stdlib版本不匹配的警告。
为什么我在使用NULL
时突然出现问题?
此外,我真的可以将nullptr
用于非托管类型和托管类型吗?
EDIT:似乎nullptr
是否可以用于非托管类型的答案是肯定的。所以我认为答案是开始使用nullptr
。
https://msdn.microsoft.com/en-us/library/4ex65770.aspx
您必须包括stdlin.h或stddef.h,我相信