gpt4 book ai didi

c - C和Windows API有什么关系?

转载 作者:太空狗 更新时间:2023-10-29 17:04:27 24 4
gpt4 key购买 nike

我查看了关于 SO 的其他一些问题,不清楚 c 是构建在 WINAPI 之上、之下还是旁边。例如,有人可以用纯 c 语言编写能够打开窗口的东西,还是他们需要使用 windows api?

我注意到打开文件的 c(库?)版本 (fopen) 与 Windows API 版本 (CreateFile) 之间的相似之处,这让我想知道一个是否只是另一个的包装器。有人知道吗?

如果 Windows 正在运行;程序员是否被迫使用 windows api 进行编程以在其上运行某些东西,或者程序员是否可以根本不使用 windows api 并直接访问硬件(即 windows 操作系统是否保护对硬件的访问)?

windows ce不同版本的windows之间哪个移植性更好。我找到的文档(现在已经更改)曾经说 CreateFile 只能追溯到 windows ce 的 2.0 版(这里:http://msdn.microsoft.com/en-us/library/ms959950.aspx -请注意最底部链接上的注释,显示支持的版本信息已更改)。那么对于windows ce version 1应该使用什么?换句话说,使用 C 函数或标记为 WINAPI 的函数进行编程是否更有可能在所有版本的 Windows CE 上工作?

我在一本关于 windows ce 编程的书中读到以下内容,这让我感到困惑,因此在理解以下内容的上下文中可以更好地理解上述所有问题:

Windows CE supports the most of the same file I/O functions found on Windows NT and Windows 98. The same Win32 API calls, such as CreateFile, ReadFile, WriteFile and CloseFile, are all supported. A Windows CE programmer must be aware of a few differences, however. First of all, the standard C file I/O functions, such as fopen, fread, and fprintf, aren't supported under Windows CE. Likewise, the old Win16 standards, _lread, _lwrite, and _llseek, aren't supported. This isn't really a huge problem because all of these functions can easily be implemented by wrapping the Windows CE file functions with a small amount of code.

我对包装的理解是你必须要包装一些东西,考虑到 win16 和 c 库似乎不可用,他是说要包装 CreateFile 函数来制作你自己的类 c 版本的 fopen 吗? (我唯一知道的另一件事是汇编,如果那是他建议包装的东西,它就不会以如此随意的方式编写。)

综上所述,c语言(语法、数据结构、流程控制)、c函数库(ex.fopen)、windows api(ex.CreateFile)之间的依赖关系是什么?

最佳答案

C 在 Windows 出现之前很久就存在了。 Windows API 是一堆用 C 编写的库。您可能无法自己复制其功能,具体取决于 Microsoft 已记录或通过 API 提供的内容。在某种程度上,fopen()CreateFile() 很可能各自调用相同或相似的操作系统服务,但不太可能是对其他。绕过 Windows API 直接访问硬件可能很困难,但只要有足够的时间和编程工作,一切皆有可能。

关于c - C和Windows API有什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3114622/

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