gpt4 book ai didi

windows - WinAPI Shell API 与基本 API 和 CRT 函数有何不同?

转载 作者:可可西里 更新时间:2023-11-01 14:42:47 25 4
gpt4 key购买 nike

我正在通读 Windows 进程 API,留下了三个问题:

  1. 基本 API 和 shell API 有什么区别?我读到 shell API 包装了基本 API,例如ShellExecute() 和 ShellExecuteEx() 包装了 CreateProcess() 但无法理解其中的区别。

  2. 基本 API 和 Shell API 与 CRT 函数(C 运行时)有何不同。同样,exec() 和 spawn() CRT 函数包装了基本 API 的 CreateProcess()。

  3. 我知道我可以通过编译和链接正确的头文件来直接使用代码中的基本 API 和 CRT 函数。如何使用 Shell API?

最佳答案

1) 基础 API 和 shell API 之间有什么区别?

他们做不同的事情。 ShellExecute 系列以与 shell 相同的方式做事,即以与 Windows 资源管理器相同的方式。它不仅仅是 CreateProcess 的包装器。例如,如果您将 word 文档的路径传递给 ShellExecute,ShellExecute 将在注册表中查找以找出打开 word 文档的正确方法,然后执行此操作。

ShellExecute 还可以执行您在 Windows 上下文菜单上看到的其他“动词”,例如编辑、打印等。

2) 基本 API 和 Shell API 与 CRT 函数有何不同

CRT函数在Windows上实现,以兼容C标准。它们是 CreateProcess 的包装器,但它们存在的原因是为了兼容而不是提供额外的功能。

3) 如何使用 Shell API

要使用 shell API,您只需包含头文件并链接正确的库,就像使用任何其他 API 一样。

例如,ShellExecute:

正如您在页面底部看到的那样,它会告诉您要包​​含哪个文件以及要链接到哪个库。

Requirements

Minimum supported client: Windows XP [desktop apps only]

Minimum supported server: Windows 2000 Server [desktop apps only]

Header: Shellapi.h

Library: Shell32.lib

DLL: Shell32.dll (version 3.51 or later)

Unicode and ANSI names: ShellExecuteW (Unicode) and ShellExecuteA (ANSI)

关于windows - WinAPI Shell API 与基本 API 和 CRT 函数有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19115510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com