C++(创建和使用托管程序集)

2014-11-24 03:30:52 · 作者: · 浏览: 0

托管程序集是一种库,您可以创建该库以便高效地重用代码。 这样,就不必在多个程序中重新实现同样的例程,而只需编写这些例程一次,然后在需要该功能的应用程序中引用它们即可。


创建类库项目:

1. 在“文件”菜单上指向“新建”,然后单击“项目”

2. 在“项目类型”窗格中,选择“Visual C++下的“CLR”

此组中的每个项目类型都将创建一个面向公共语言运行时 (CLR) 的项目。

3. 在“模板”窗格中,选择“类库”

4. 在“名称”框中键入项目的名称,例如,MathFuncsAssembly。 在“解决方案名称”字段中键入解决方案的名称,例如,ManagedAssemblies。

5. 单击“确定”创建项目。

6. 默认情况下,在创建项目时,会将项目设置为使用预编译头。 若要为 MathFuncsAssembly 项目禁用预编译头,请在“解决方案资源管理器”中选择项目,然后在“项目”菜单上,单击“属性”。 依次展开“配置属性”节点和“C/C++节点,然后选择“预编译头”。 在“创建/使用预编译头”旁边的列表中,选择“不使用预编译头”。 单击“确定”保存这些更改。

在生成的代码中添加方法Class1是生成的,可以自己换成别的名字,然后在下面添加方法:

namespace clr5 {

	public ref class Class1
	{
	public:
		static double add(double a, double b);
		static double subtract(double a, double b);
	};
}

在clr5.cpp添加:

namespace clr5 {
	
		double Class1::add(double a, double b)
		{
			return a + b;
		}
		double Class1::subtract(double a, double b)
		{
			return a - b;
		}
}

编译成功生成可供其他程序使用的动态链接库 (DLL),本文生成clr5.dll。


创建引用库的控制台应用程序:一定要把这个测试工程和当前工程创建一起:

下面创建两个解决方法:

\


1. 在您创建 CLR 控制台应用程序后,向导将生成一个仅向控制台写入“Hello WZ http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcmxkobG1xLPM0PKhoyDJ+rPJtcTUtM7EvP61xMP7s8bT68T61Nq0tL2oz+7Ev8qxzqrP7sS/1ri2qLXEw/uzxs/gzayhoyDU2rG+yr7A/dbQo6zD+7PGzqqhsGNscjVUZXN0LmNwcKGxoaM8L3A+CjxwPjIuICAgICAgyPTSqsq508PU2sDgv+LW0LS0vai1xMvjyvXA/bPMo6yx2NDr0v3Tw8Dgv+KhoyDOqrTLo6zH69TaPHN0cm9uZz6hsL3ivva3vbC418rUtLncwO3G96GxPC9zdHJvbmc+1tDRodTxIApjbHI1VGVzdCDP7sS/o6zIu7rz1No8c3Ryb25nPqGwz+7Ev6GxPC9zdHJvbmc+ssu1pcnPo6y1pbv3PHN0cm9uZz6hsMr00NShsTwvc3Ryb25nPqGjINTaPHN0cm9uZz6hsMr00NTSs6GxPC9zdHJvbmc+ttS7sL/y1tDVub+qPHN0cm9uZz6hsM2o08PK9NDUobE8L3N0cm9uZz692rXjo6zRodTxPHN0cm9uZz6hsL/yvNy6zdL908OhsTwvc3Ryb25nPqOsyLu687Wlu/c8c3Ryb25nPqGwzO2809DC0v3Tw6GxPC9zdHJvbmc+oaMg09C52Lj8tuDQxc+io6zH67LOvPuhsDxQcm9qZWN0bmFtZT4KyvTQ1NKzobG21Luwv/IgLT6hsM2o08PK9NDUobEtPqGwv/K83LrN0v3Tw6GxoaM8L3A+CjxwPjMuICAgICAgPHN0cm9uZz6hsMztvNPS/dPDobE8L3N0cm9uZz621Luwv/LB0LP2wcvL+dPQv8nS1NL908O1xL/ioaMgPHN0cm9uZz6hsC5ORVShsTwvc3Ryb25nPtGhz+6/qMHQs/bByyAuTkVUIEZyYW1ld29yayC4vbT4tcS/4qGjIDxzdHJvbmc+obBDT02hsTwvc3Ryb25nPtGhz+6/qMHQs/bBy7zGy+O7+snPtcTL+dPQIENPTSDX6bz+oaMgPHN0cm9uZz6hsM/uxL+hsTwvc3Ryb25nPtGhz+6/qMHQs/bBy7Wxx7C94r72t72wuNbQtcTL+dPQz+7Ev6Os0tS8sMv8w8ew/LqstcTL+dPQv+KhoyDU2jxzdHJvbmc+obDP7sS/obE8L3N0cm9uZz7Roc/uv6jJz6Os0aHU8TxzdHJvbmc+obBjbHI1obE8L3N0cm9uZz6jrMi7uvO1pbv3PHN0cm9uZz6hsMi3tqihsTwvc3Ryb25nPqGjPC9wPgo8cD48YnI+CjwvcD4KPHA+seDQtLT6wuujujwvcD4KPHA+PHByZSBjbGFzcz0="brush:java;">// clr5Test.cpp: 主项目文件。 #include "stdafx.h" using namespace System; int main(array ^args) { Console::WriteLine(L"Hello World"); double a = 7.4; int b = 99; Console::WriteLine("a + b = {0}", clr5::Class1::add(a, b)); Console::WriteLine("a - b = {0}", clr5::Class1::subtract(a,b)); return 0; }
编译解决方案,

\

如果想在这里,直接运行clr5test 解决方案,先要把这个设置为启动项目

\


运行成功,没有问题