2012-01-15 73 views
1

我正在教自己C(来自Java)。我非常欣赏这种语言,我正在学习的主要原因之一是,我可以利用内置于Java中的JNI功能在必要时编写本机代码。我的问题主要是关于Windows API。我可以使用C的函数和功能吗?Windows API可以使用C吗?

Windows API是否与纯C代码兼容,还是包含只能由C++代码使用的类和类?另外,如果我在Windows计算机上将共享库编译为(lib.sl NOT lib.dll),它是否可以在另一台计算机(Mac/Linux)上运行?

+4

Win32 API是纯粹的C. – 2012-01-15 02:45:23

+1

非常好的选择。让我知道,当你下降到组装者的水平,甚至一些Verilog :) – 2012-01-15 02:53:33

+1

@VladLazarenko我们需要更多的人在这里弗拉德,还有谁会做重任! ;):P – ScarletAmaranth 2012-01-15 03:06:39

回答

7
  1. Windows API(又名Win32 API)是一个纯C库。
  2. 不,您不能在另一台非Windows计算机上使用Windows共享库,除非存在支持Windows ABI的软件 - 例如WineReactOS
+0

......并且很多时候你不能甚至可以在另一台Windows机器上使用它。即在不同的体系结构上。 – 2012-01-15 02:52:40

+0

@VladLazarenko很频繁?你有没有可移植的东西的参考? – 2012-01-15 03:00:13

+0

@cli_hlt无赖!当你只拥有一个平台时,我讨厌C的缺乏可移植性。有没有办法从Windows机器上为UNIX创建共享库? – bgroenks 2012-01-15 04:03:11

0

像其他人所指出的Win32 API是纯粹的C.它意味着,一旦你掌握了它,你就会知道操作系统的一切工作。通常与其他操作系统也是如此。如果您使用MFC/COM +或Java包装器,即使您可以构建优秀的程序,情况也完全相反。

相关问题