2011-03-29 55 views
5

对有多少人实际使用C++/CLI感到好奇?那么有多少人在使用它?人们是否只在管理环境下寻找程序员的具体工作?围绕C++/cli的社区有多大?从迄今为止我所看到的语法变化不少,这是我应该学习的东西,作为一个C++程序员?另外,是c + +/cli,C++ .net?我对任何微软都很无知。C++/CLI社区

回答

5

刚想人每天为生编程C++/CLI。很多程序员知道如何编写一个包装类,这就是语言的优点。但是这些是一次性项目,弥补了遗留代码库和托管前端之间的差距。就像在.NET框架中使用的一样,在System.Data和PresentationManager中使用C++/CLI来分别与dbase提供程序和DirectX进行交互。当你熟悉本地C++编程,并且至少已经暴露于类似C#的东西,并且知道CLR的基础知识时,那么在必要时你将不会遇到潜在的麻烦。图大概三个星期,以加快语法。掌握它当然需要更长的时间,但并不总是需要完成工作。

2

C++/CLI是必要的,有助于托管和非托管代码之间的桥梁,当你没有100%的托管写的完整的奢侈品。如果由于许多限制而无法在托管代码中重写整个C++应用程序,并且随着时间的推移逐个添加新的托管代码是实现真正迁移以获取托管代码的一种方式,则会发生这种情况。

+2

或者当您需要未由Microsoft提供的封装程序公开的操作系统服务时(或者由于任意限制而发疯,例如SerialPort类仅适用于以“COM”开头的文件名)。通过C++/CLI调用Win32 API很容易,而且类型安全,p/invoke既不是。 – 2011-03-29 22:42:29

3

C++/CLI绝对是小众的,但我敢肯定,开发人员不必很难找到工作。 C++/CLI的目的是弥补原生代码和托管代码之间的差距。 Microsoft Visual C++编译器将同时编译本机C++,托管C++(CLI)或两者。对于性能非常重要的Interop场景来说,这绝对有用。

如果您想了解更多请查看:

http://www.functionx.com/cppcli/index.htm

5

从你的问题的一些较容易的部分开始,“Managed C++”是Visual C++ 2002中引入的C++旧的互操作层的名称。说实话,这是非常可怕的,并且让我烦恼看看.Net好几年了。对于Visual Studio 2005,托管C++被C++/CLI取代。语法实际上非常简单,而最终的结果看起来并不像C++,它很容易阅读,并且与C#非常相似。我牢牢地盯着桅杆,实际上我很喜欢使用它!

C++/CLI的大多数用例都涉及包装本地代码,除此之外,我还将它用于涉及扩展MAPI和Outlook的更实质性的程序集。根据C++/CLI的日常使用情况,您可能需要长时间仔细研究如何实现配置模式(查看〜/!语法组合)。我发现它激怒了共享指针不能用作托管类中的成员变量,所以我多年来一直在写我唯一的“删除”语句,但这确实是一个小问题。

FxCop在C++/CLI生成的程序集上出色地工作,所以你应该在你了解.Net的时候使用它。

祝你好运!

p.s.

严格地说,我不确定这个问题是否属于有效的StackOverflow问题,但它是一个有趣的主题...