当前位置: 代码迷 >> VC >> Function(a,b)能在特定情况下直接用Function不带括号和参数表示么?该如何解决
  详细解决方案

Function(a,b)能在特定情况下直接用Function不带括号和参数表示么?该如何解决

热度:1943   发布时间:2013-02-25 00:00:00.0
Function(a,b)能在特定情况下直接用Function不带括号和参数表示么?
请问以下语句如何传递参数的?

DriverObject->DriverExtension->AddDevice = Wdm1AddDevice;

NTSTATUS Wdm1AddDevice(IN PDRIVER_OBJECT DriverObject,IN PDEVICE_OBJECT pdo)
{
...
}


这段代码是在《WindowsWDM设备驱动程序开发指南》的范例里的,经亲自测试可编译执行。

让我使用这段代码没什么问题,就是不理解等号后面的Wdm1AddDevice这里为什么不是
Wdm1AddDevice(DriverObject,pdo)的形式,求高人指点,感激不尽!


------解决方案--------------------------------------------------------
函数指针
------解决方案--------------------------------------------------------
函数好像是函数引用。

应该这样调用

(DriverObject->DriverExtension->AddDevice)(***,****)

函数指针应该是
DriverObject->DriverExtension->AddDevice = &Wdm1AddDevice
调用是
(*(DriverObject->DriverExtension->AddDevice))(***,****)
  相关解决方案