zoukankan      html  css  js  c++  java
  • 创建和使用托管程序集/动态链接库/静态库

    取消预编译头:

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

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

  • 相关阅读:
    Truck History(poj 1789)
    Highways poj 2485
    117. Populating Next Right Pointers in Each Node II
    116. Populating Next Right Pointers in Each Node
    115. Distinct Subsequences
    114. Flatten Binary Tree to Linked List
    113. Path Sum II
    109. Convert Sorted List to Binary Search Tree
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
  • 原文地址:https://www.cnblogs.com/hometown/p/3204233.html
Copyright © 2011-2022 走看看