没有身体的功能

时间:2012-05-30 17:32:41

标签: c++ c windows

我正在使用“Windows via C \ C ++”一书附带的配套光盘分析此代码,我发现了这个陈述

m_hSnapshot = CreateToolhelp32Snapshot(dwFlags, dwProcessID);

其中dwFlagsdwProcessID是DWORD的

当我跳到这个函数CreateToolhelp32Snapshot的定义时,我发现了这个

HANDLE 
WINAPI
CreateToolhelp32Snapshot(
    DWORD dwFlags,
    DWORD th32ProcessID
    );

如果没有身体这样的功能怎么样?

我尝试调试代码,但编译器没有进入此函数,而只是简单地跳过存储在m_hSnapshot中的值为0x00000754的第一个语句。

6 个答案:

答案 0 :(得分:7)

  

如果没有身体的这种功能怎么样?

没有。你所看到的只是一个function prototype。身体在别处定义。

答案 1 :(得分:4)

您看到的不是函数定义,而是声明。实际定义由Windows本身的dll提供,链接到您的可执行文件。

答案 2 :(得分:0)

该函数有一个正文,但它只是不可见。

那只是宣言。如果它是可见的,Windows将是开源的(不要笑)。 C ++是一种编译语言。二进制文件是从代码生成的,代码本身不需要调用函数。

答案 3 :(得分:0)

正文可能位于不同的地方,例如您链接的静态或动态库。

答案 4 :(得分:0)

它只是一个接受参数的函数,它可能在用户初始化之后由其他地方的方法使用。看起来它实际上只是在您进入命令提示符并请求进程显示时显示processID的快照。

答案 5 :(得分:0)

是的,这只是在现有Windows DLL(Kernel32.dll)中定义的函数的原型