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


    取消预编译头:

    默认情况下,创建新项目时,会将它们设置为使用预编译头。若要禁用预编译头,请在项目菜单中选择属性。展开配置属性节点,然后展开“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头文件,步骤和应用动态链接库头文件步骤相同。

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

  • 相关阅读:
    编写 iPhone Friendly 的 Web 应用程序
    WebService的安全性讨论【身份识别】
    使用InstallShield系统变量的缺省值
    数据库用户操作相关
    TFS2010安装
    微软实验虚拟机下载地址
    生成18位不重复的ID
    Linux 账户 帐户管理 文件权限 权限管理
    Chrome 插件开发
    Ubuntu 环境变量 设置
  • 原文地址:https://www.cnblogs.com/hometown/p/3204233.html
Copyright © 2020-2023  润新知