在 Visual Studio 2019 中将布尔变量作为参数传递给需要 BOOL 参数的函数
Passing a bool variable as a parameter to a function expecting a BOOL parameter in Visual Studio 2019
拿这个示例代码:
void CChristianLifeMinistryDiscussionsDlg::SetControlStates()
{
if (m_pEntry == nullptr)
return;
bool bClass1 = false, bClass2 = false;
m_pEntry->GetAuxiliaryClasses(bClass1, bClass2);
m_cbBrothersC1.EnableWindow(bClass1 ? TRUE : FALSE);
m_cbBrothersC2.EnableWindow(bClass2 ? TRUE : FALSE);
}
EnableWindow
需要 BOOL
类型的参数。我从来不清楚在这种情况下是否可以只传递我的 bool
变量的值。
A BOOL
is a type alias for an int
. A value of type bool
can be implicitly converted 到 int
类型的值。这称为积分提升,定义明确:值false
变为0,值true
变为1。
将类型 bool
的值传递给需要参数类型 BOOL
(即 int
)的函数是安全且定义明确的。
拿这个示例代码:
void CChristianLifeMinistryDiscussionsDlg::SetControlStates()
{
if (m_pEntry == nullptr)
return;
bool bClass1 = false, bClass2 = false;
m_pEntry->GetAuxiliaryClasses(bClass1, bClass2);
m_cbBrothersC1.EnableWindow(bClass1 ? TRUE : FALSE);
m_cbBrothersC2.EnableWindow(bClass2 ? TRUE : FALSE);
}
EnableWindow
需要 BOOL
类型的参数。我从来不清楚在这种情况下是否可以只传递我的 bool
变量的值。
A BOOL
is a type alias for an int
. A value of type bool
can be implicitly converted 到 int
类型的值。这称为积分提升,定义明确:值false
变为0,值true
变为1。
将类型 bool
的值传递给需要参数类型 BOOL
(即 int
)的函数是安全且定义明确的。