【发布时间】:2014-04-16 14:25:48
【问题描述】:
在 Visual Studio 2012 中,当我尝试编译以下 c++ 函数时:
void CCustToolBar::OnCustHelp(NMHDR* pNMHDR, LRESULT* /*pResult*/)
{
TRACE(_T("{ Help ID = %d }\n"), pNMHDR->idFrom);
}
我收到警告“警告 C4100: 'pNMHDR' : unreferenced form parameter”
这没有意义,因为正在使用 pNMHDR。如果我尝试将其注释掉:
void CCustToolBar::OnCustHelp(NMHDR* /*pNMHDR*/, LRESULT* /*pResult*/)
{
TRACE(_T("{ Help ID = %d }\n"), pNMHDR->idFrom);
}
我收到错误“错误 C2065: 'pNMHDR' : undeclared identifier”
这是有道理的。
我在这里缺少什么?为什么在使用变量时会收到警告 C4100?
【问题讨论】:
-
如果
TRACE仅在调试模式或其他情况下发生,我可以看到它未被使用。 -
如果是这样的话,我希望当我尝试在版本中构建它并注释掉该变量时它不会抱怨。
-
尝试添加
pNMHDR;(这一行什么都不做)。有关详细信息,请参阅MSDN's article。 -
是的,我知道如何绕过它。我只是好奇是什么原因造成的。
标签: c++ visual-c++