【发布时间】:2016-09-21 17:10:34
【问题描述】:
我使用 TaskScheduler COM,这是我的代码:
typedef HRESULT(*FuncOfBoll)(_Out_ VARIANT_BOOL* b);
static bool GetBool(FuncOfBoll func)
{
VARIANT_BOOL b = VARIANT_FALSE;
HRESULT hr = func(&b);
if (FAILED(hr)) return FALSE;
return b == VARIANT_TRUE;
}
void test(ITaskSettings* settings)
{
bool b = GetBool(settings->get_StopIfGoingOnBatteries); // <= The error here
// ...
}
我收到以下错误:
错误 C3867 'ITaskSettings::get_StopIfGoingOnBatteries':非标准 句法;使用 '&' 创建指向成员的指针
我的错误是什么以及如何改正?
【问题讨论】:
-
@PeteBecker 该函数的参数 (
GetBool) 是一个采用 bool 的函数,它不适用于成员函数。 -
你不能那样做。非静态类成员函数不是函数,例如它们不能像函数一样被调用。
-
投票结束,因为不清楚你在问什么。请参阅my comment-as-answer 以获得一些关于此的有用评论。
标签: c++ visual-studio com