我正在使用“Windows via C \ C ++”一书附带的配套光盘分析此代码,我发现了这个陈述
m_hSnapshot = CreateToolhelp32Snapshot(dwFlags, dwProcessID);
其中dwFlags
和dwProcessID
是DWORD的
当我跳到这个函数CreateToolhelp32Snapshot
的定义时,我发现了这个
HANDLE
WINAPI
CreateToolhelp32Snapshot(
DWORD dwFlags,
DWORD th32ProcessID
);
如果没有身体这样的功能怎么样?
我尝试调试代码,但编译器没有进入此函数,而只是简单地跳过存储在m_hSnapshot中的值为0x00000754的第一个语句。
答案 0 :(得分:7)
如果没有身体的这种功能怎么样?
没有。你所看到的只是一个function prototype。身体在别处定义。
答案 1 :(得分:4)
您看到的不是函数定义,而是声明。实际定义由Windows本身的dll提供,链接到您的可执行文件。
答案 2 :(得分:0)
该函数有一个正文,但它只是不可见。
那只是宣言。如果它是可见的,Windows将是开源的(不要笑)。 C ++是一种编译语言。二进制文件是从代码生成的,代码本身不需要调用函数。
答案 3 :(得分:0)
正文可能位于不同的地方,例如您链接的静态或动态库。
答案 4 :(得分:0)
它只是一个接受参数的函数,它可能在用户初始化之后由其他地方的方法使用。看起来它实际上只是在您进入命令提示符并请求进程显示时显示processID的快照。
答案 5 :(得分:0)
是的,这只是在现有Windows DLL(Kernel32.dll)中定义的函数的原型