在MFC的工程中如何使用.net类库

韩雷 2006-08-04 10:10:17
我在程序中加上
using namespace System;
编译器提示
error C2871: “System” : 具有该名称的命名空间不存在
...全文
338 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
韩雷 2006-08-04
  • 打赏
  • 举报
回复

在左窗格中单击“C/C++”文件夹。
单击“C/C++”下的“常规”文件夹。
将“编译为托管”属性设置为“程序集支持”(/clr)。
单击“确定”按钮,重新生成项目。
重新生成项目后,托管扩展支持即可用。
---------------------------------------------------------

不好意思,我没找到 编译为托管 这个属性
只有
附加包含目录 解析using引用等几个属性
思危 2006-08-04
  • 打赏
  • 举报
回复
msdn里有介绍啊

使用 C++ 托管扩展的一个最有力的理由是可以轻松地将现有 C++ 应用程序转换为托管扩展应用程序。此过程包括三个步骤:

修改现有项目设置
在现有应用程序中使用新的托管扩展功能
生成和测试回归
注意 有关将现有应用程序移植到托管扩展应用程序的详细指南,请参见 C++ 托管扩展移植指南。
修改现有项目设置
第一步是通过添加 /clr 选项修改编译器选项,然后重新编译目标应用程序。/clr 选项启用托管扩展支持,并强制链接到正确的库。

修改项目设置

在 Visual Studio 中打开目标项目。
在解决方案资源管理器中,右击项目节点并单击“属性”。
即会出现“属性页”对话框。

在左窗格中单击“C/C++”文件夹。
单击“C/C++”下的“常规”文件夹。
将“编译为托管”属性设置为“程序集支持”(/clr)。
单击“确定”按钮,重新生成项目。
重新生成项目后,托管扩展支持即可用。

在现有应用程序中使用新的托管扩展功能
使用托管扩展支持已生成目标应用程序后,可以轻松地添加所有 .NET Framework 功能,从托管类型到 .NET Framework 类(如 String)。

出于本文的目的,使用了 .NET Framework 类 String 和 Console 来说明该步骤。

下面的代码声明 String 类的两个实例和一个 int 类型的托管数组:

String* MyLiteral= L"Current array values";
String* MyLiteral2= L"Current array values (after initialization)";
int a1 __gc[] = new int __gc[10];
关键字 __gc 指示 a1 是托管数组。这样,内容将自动初始化为 0,并且所需内存被自动回收。而且,托管数组从 System::Array .NET 类中继承,该类提供许多有用的方法和属性。

声明了变量后,下面的代码创建 System::Console 类的一个实例,并使用 System::Console 类的 WriteLine 方法和 System::Array 类的 Length 属性打印当前数组的内容(每个元素都初始化为 0):

Console::WriteLine(MyLiteral);
for (int i=0; i < a1->Length; ++i) // Use the Length property
Console::Write(a1[i]);
Console::WriteLine();
最后,下列代码重新初始化数组并再次打印值:

for (i=0; i < a1->Length; ++i)
a1[i] = i;
Console::WriteLine(MyLiteral2);
for (i=0; i < a1->Length; ++i)
Console::Write(a1[i]);
此示例说明在 C++ 应用程序中使用托管扩展的一些优点:

托管数组元素自动初始化为 0。
托管数组自动被销毁并且托管堆释放所有资源。
.NET Framework 基类可以被轻松访问,并且它们本身就是托管类。
注意托管构造和非托管(本机)构造可以在一个应用程序中混合使用。例如,如果没有使用 __gc 关键字声明上例中的数组,则会创建一个本机 C++ 数组。

生成和测试回归
最后一步是获得没有错误的应用程序版本并测试新功能。

对该步骤的详细探讨超出了本主题的范围。有关将现有应用程序移植到 C++ 托管扩展的更多信息,请参见 C++ 托管扩展移植指南。
思危 2006-08-04
  • 打赏
  • 举报
回复
用VS2003?
  • 打赏
  • 举报
回复
MFC 7.0 好像不能用.net 类 2005的没有试过

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧