创建和使用托管程序集/动态链接库/静态库

3 篇文章 0 订阅

取消预编译头:

默认情况下,创建新项目时,会将它们设置为使用预编译头。若要禁用预编译头,请在项目菜单中选择属性。展开配置属性节点,然后展开“C/C++”节点,并选择预编译头。从创建/使用预编译头旁边的下拉列表中,选择不使用预编译头

 

以下1CLR上运行的代码,23为本地C++代码!

1.       创建和使用托管程序集。

添加vc++ CLR类库项目,取消预编译头,CLRAdd.h和CLRAdd.cpp。

CLRAdd.h 代码如下:

#pragma once

using namespace System;

namespace CLRAdd

{

  public ref class Math

  {

  public:

       static double  Add(double a,double b);

  };

}

   CLRAdd.cpp代码如下:

     #include "stdafx.h"

#include "CLRAdd.h"

namespace CLRAdd

{

  double  Math::Add(double a, double b)

  {

       return a+b;

  }

}

 

创建C#控制台程序项目,添加对CLRAdd.dll的引用。可以调用以上Add方法。

class Program

    {

        static void Main(string[] args)

        {

            Console.WriteLine(CLRAdd.Math.Add(9.09 , 0.01).ToString());

            Console.Read();

        }

 }

 

2.      创建和使用动态链接库

创建win32 dll 空项目,添加Math.hMath.cpp

Math.h代码如下:

namespace Math

{

     class Maths

     {

     public:

         static __declspec(dllexport) double Add(double a,double b);

     };

}

__declspec(dllexport) 修饰符使 DLL 能够导出该方法以供其他应用程序使用

   Math.cpp代码如下:

       #include "Math.h"

namespace Math

{

  double Math::Maths::Add(double a, double b)

  {

       return a+b;

  }

}

 创建c++项目,引用以上生成项目,

  引用Math.h头文件:项目右键“属性”,“配置属性”à“C/C++”à“常规”中,附加包含目录,输入头文件的地址.

由于动态链接库仅在运行时由可执行文件加载,所以必须知道dll的路径。项目右键“属性”,“配置属性”à“调试”,环境中输入path=<dll的路径>。

#include <iostream>

#include "Math.h"

void main()

{

     double d=Math::Maths::Add(6.3,3.6);

     std::cout<<d;

     system("pause");

}

3.      创建和使用静态库

创建win32的静态库项目,添加Math.hMath.cpp.

Math.h代码如下:

namespace Math

{

     class Maths

     {

     public :

         static double Add(double a,double b);

     };

}

     Math.cpp文件与使用动态链接库的CPP文件相同。

    创建C++win32项目,添加对静态库项目的引用。

需引用Math.h头文件,步骤和应用动态链接库头文件步骤相同。

调用方式同以上动态链接库方法的调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值