【发布时间】:2013-01-22 14:11:53
【问题描述】:
我有一个编程项目,它需要访问一些较低级别的 Windows API(尤其是 WASAPI)。我对 C#、Java 和 PHP 等高级编程语言相当有经验,而且我对 C/C++ 知之甚少。
我想在这个项目中使用 C(不是 C++),如 C++ is kind of scary。在 Visual Studio 中更改我的项目的 C/C++ 设置以编译为 C 代码后,我注意到对 __uuidof 的任何调用都不起作用,因为它们是 C++ 特定的。
我的问题有两个:
- 是否可以用纯 C 语言编写使用 COM 的 Win32 程序,以及
- 如果是这样,是否应该避免使用纯 C?
【问题讨论】:
-
当然有可能,但是您可以获得更多 C++ 的内置支持。如果我没记错的话(我不再有这本书了),Dale Rogerson 的“Inside COM”从 COM 的基础开始接近 COM——解释了如何从直接 C 中访问它。
-
是的,是的(恕我直言)。在 20 年的 COM 编程中,我从未听到有人说他们更喜欢使用 C,因为 C++ COM 编程是“可怕的”。我已经做了 long 时间。 C ++要容易得多。您可以在 C 中做到这一点,但您希望您一旦学习了 C++ 中最基本的实现就没有。 (为了添加到 Michael 的书单中,将时间拉回到 Kraig Brockschmidt 的 Inside OLE2 =P)。
-
请参阅previous question 了解有关 FQA 的信息。简短的总结:不要让它把你吓跑 C++;大部分都是废话。