从2001年.net平台开始发布到现在,C++/CLI已经存在了好几年。以前叫mc++,现在改名为C++/CLI,有些人认为C++/CLI是一种新语言,有的只是认为是C++的一个扩展。C++/CLI是完全基于.NET平台之上。C++/CLI的出现给C++项目开发带来了不少的变化。可惜由于.NET平台目前还没有完全覆盖windows的全部操作系统,C++/CLI也只能用于服务器程序的开发。用来编写客户端程序,分发成本实在不低。
光从用途来看C++/CLI是.NET平台和iso c++之间的一个过渡桥梁,一个 ISO c++项目走向.net项目的一个单向桥梁。抛开各种政治上的,信仰上的考虑,.NET平台的确带来了不少吸人眼球的技术。在尝试着开发了几个c#1.1项目之后,由于c#1.1项目开发过于死板。于是一直等待到.NET 2.0发布,.NET平台开始进入成熟时期,我开始尝试着在近期的C++项目中引入.NET技术。.NET2.0以前的版本和.NET 2.0之间差异很大,这样的开发方式最好在vc2005上尝试。vc 2003,vc 2002和vc.net 上都是存在一定缺陷的,而且相互之间的代码也不能完全兼容。
try-catch-exception,ado.net是羡慕已久的2项.NET技术了。终于可以在项目中尝试一把了。
ISO C++自身也带有try,catch关键字。无论从使用角度还是实际效果方面都没有.NET的try-catch爽。.NET 的try-catch关键字有.NET强力支持,在查找bug和预防程序崩溃方面异常有用。基本上能避免应用程序完全崩溃。
ado.net和其扩展Microsoft.Practices.EnterpriseLibrary.Data在操作database方面异常的方便。比起C++需要使用各种api或者ado来操作数据库,完全是2个世界的。
最终完成的项目,99%的代码是ISO C++编写,数据库操作代码和部分try-catch用C++/CLI。C++/CLI的语法以及常用操作符号和ISO C++差异很大,很容易就能分辨出哪些是ISO C++代码,那些C++/CLI代码。在维护上也没有太多问题。不过实际开发过程中,如果不做控制,C++/CLI的代码最终会“蔓延”开来,越来越多。
最后编译下来,部分ISO C++、C++/CLI代码编译成了.net的中间代码。部分ISO C++代码则还是二进制代码。完全是一个"怪物"应用程序。vc 2005的cl的确有些夸张,这样都能够编译。ISO C++和C++/CLI在某些角度来看是完全两种语言。cl居然能够分辨出来做出不同的编译.
实际运行下来,这样的开发方式完全是可以接受的。数据库操作部分的代码不在有以前使用ado时候那种拖沓、难看的代码了。.NET版本try-catch的引入,使得程序稳定性增强不少。
附一段C++/CLI的操作数据库代码
try
{
Database^ db = nullptr;
String^ sqlCommand = nullptr;
DbCommand^ dbCommand = nullptr;
IDataReader^ dataReader = nullptr;
db = DatabaseFactory::CreateDatabase();
String ^ temp = nullptr;
sqlCommand = String::Format("select * from table where ID = {0} and type=1 ",ID);
dbCommand = db->GetSqlStringCommand(sqlCommand);
dataReader = db->ExecuteReader(dbCommand);
if (dataReader->Read())
{
temp= (String^)dataReader[0];
}
}
catch(Exception^ ex)
{
Console::Write(ex->ToString());
}
分享到:
相关推荐
标题:“C++/CLI教程”指的是一个专门针对C++/CLI(C++ Common Language Infrastructure)编程语言的教程。C++/CLI是微软设计的一种编程语言,旨在将C++的强大功能与.NET平台的互操作性相结合。它允许开发者使用C++...
C++/CLI是Microsoft为.NET框架设计的一种编程语言,它允许开发者编写混合模式的代码,即同时包含托管代码(.NET)和非托管代码(C++)。C++/CLI提供了一种机制,使得C++类可以被.NET环境理解和使用,同时也能够调用...
1. **托管与非托管代码**:C++/CLI允许在同一个程序中混合使用托管(由.NET管理)和非托管(C++原生)代码,这对于既有C++遗留代码又希望利用.NET服务的项目非常有用。 2. **CLI关键字**:`ref class`是C++/CLI中的...
本书《Expert C++/CLI: .NET for Visual C++ Programmers》由Marcus Heege编写,是一本专为想要深入理解如何在.NET环境中利用Visual C++进行编程的读者而设计的书籍。以下是对本书涉及的主要知识点的详细解析。 ###...
《C++/CLI in Action 源代码》是关于C++/CLI编程实践的一份宝贵资源,其中包含了书中示例程序的源代码。C++/CLI是Microsoft为.NET框架开发的一种语言扩展,它使得C++程序员能够充分利用.NET的特性,如托管代码、垃圾...
In a very similar way, C++/CLI is layered on top of C++. C++/CLI provides a high degree of source code compatibility with C++. As a consequence, the following code is valid if you build the program ...
1. **托管与非托管代码**:C++/CLI允许混合编写托管代码(运行于.NET Framework上的代码)和非托管代码(传统的C++代码)。这使得开发者可以利用现有的C++库,并与.NET组件无缝集成。 2. **引用类型和值类型**:C++...
C++/CLI是一种微软开发的语言扩展,它使得C++能够无缝地与.NET Framework交互,提供了一种混合编程的机制,可以同时利用C++的强大功能和.NET的便利性。本资料主要针对C++/CLI的学习,旨在帮助开发者理解和掌握这一...
《C++/CLI in Action》是一本旨在帮助程序员更好地掌握C++/CLI编程技术的专业书籍。它不仅适合那些已经熟悉.NET框架并希望进一步了解如何在其中使用C++的开发者,也适用于那些对C++有一定基础并希望将其技能扩展到...
C++/CLI 是一种混合语言,它结合了 C++ 语言的静态对象模型和 CLI 的动态组件编程模型。C++ 语言是由 Bjarne Stroustrup 在 BELL 实验室发明的,它实现了运行时取得速度和尺寸最佳化的静态对象模型,但它除了堆分配...
C++/CLI标准是C++编程者在.NET环境中进行开发的重要参考。 C++/CLI的核心特性包括: 1. **托管代码与非托管代码交互**:C++/CLI允许开发者编写同时包含托管(.NET)和非托管(本机C++)代码的程序。这使得在已有...
该书通过深入浅出的方式介绍了如何利用 C++/CLI 这种混合语言编程技术来开发同时支持托管代码与非托管代码的应用程序。 #### 二、C++/CLI 的核心概念 ##### 1. 托管代码与非托管代码 - **托管代码**:指运行在 .NET...
1. **托管代码与非托管代码**:C++/CLI能够编写混合模式的代码,即同时包含托管代码(运行在.NET Framework之上的代码)和非托管代码(传统的C++代码,直接运行在操作系统上)。托管代码享有.NET Framework提供的...
C++/CLI 是一种结合了 C++ 和 .NET Framework 的编程语言,它允许开发人员编写同时利用原生 C++ 性能优势和 .NET Framework 功能的应用程序。这种语言特别适合那些希望在保持现有 C++ 技能的同时,能够利用 .NET ...
标题中的"cli.rar_C++/CLI_blabla_empty"表明这是一个与C++/CLI相关的内容,C++/CLI是微软.NET框架中的一种编程语言,它扩展了标准C++,使其能够与.NET Framework的组件交互。"empty main c function"描述可能指的是...
- **混合模式编程**:C++/CLI支持混合模式编程,即同时编写托管代码和非托管代码。这使得开发者可以在同一个项目中结合使用C++的性能优势和.NET的安全性及生产力优势。 - **引用类型与值类型**:在C++/CLI中,可以...
- **托管与非托管代码**:C++/CLI支持编写混合模式代码,即可以同时包含运行在.NET框架上的托管代码和传统的C++非托管代码。 - **装箱与拆箱**:在C++/CLI中,值类型可以被装箱为对象引用,反之也可以通过拆箱返回...
托管C++/CLI是微软推出的一种混合语言,它结合了C++的强大功能和.NET框架的安全性与生产力。这种语言的主要特点是支持与.NET Framework的无缝集成,包括对.NET类型的直接操作、垃圾回收机制以及.NET类库的使用。C++/...
C++/CLI是一种混合型编程语言,它允许程序员在C++语法的基础上编写面向对象的代码,并与.NET Framework无缝集成。该文档的发布时间为2005年8月22日,由Ecma/TC39-TG5/2005/024发布,版本号为Working Draft 1.14。 #...
C++/CLI是Microsoft提出的一种混合编程语言,它结合了C++的语法和.NET Framework的组件模型,使得开发者能够使用C++来创建和操作.NET Framework的托管代码。在这个项目中,我们探讨的是一个基于C++/CLI的简易计算器...