zoukankan      html  css  js  c++  java
  • VS2008生成DLL并使用

    1.创建工程

    2.在工程中添加类,创建.h和.cpp文件

    //.h代码

    /**
    请注意此代码方法声明中的 __declspec(dllexport) 修饰符。
    这些修饰符使 DLL 能够导出该方法以供其他应用程序使用。
    */

     1 namespace MathFuncs
     2 {
     3     class MyMathFuncs
     4     {
     5     public:
     6         // Returns a + b
     7         static __declspec(dllexport) double Add(double a, double b);
     8  
     9         // Returns a - b
    10         static __declspec(dllexport) double Subtract(double a, double b);
    11  
    12         // Returns a * b
    13         static __declspec(dllexport) double Multiply(double a, double b);
    14  
    15         // Returns a / b
    16         // Throws DivideByZeroException if b is 0
    17         static __declspec(dllexport) double Divide(double a, double b);
    18     };
    19 }

    //.cpp代码

     1 // MathFuncsDll.cpp
     2 // compile with: /EHsc /LD
     3  
     4 #include "MathFuncsDll.h"
     5  
     6 #include <stdexcept> 7  
     8 using namespace std;
     9  
    10 namespace MathFuncs
    11 {
    12     double MyMathFuncs::Add(double a, double b)
    13     {
    14         return a + b;
    15     }
    16  
    17     double MyMathFuncs::Subtract(double a, double b)
    18     {
    19         return a - b;
    20     }
    21  
    22     double MyMathFuncs::Multiply(double a, double b)
    23     {
    24         return a * b;
    25     }
    26  
    27     double MyMathFuncs::Divide(double a, double b)
    28     {
    29         if (b == 0)
    30         {
    31             throw new invalid_argument("b cannot be zero!");
    32         }
    33  
    34         return a / b;
    35     }
    36 }

    3.生成解决方案

    4.使用生成的DLL

    创建一个一般的win32工程,生成一个main.cpp文件并输入如下代码:

    1 #include "MathFunsDll.h"
    2 #include<iostream>
    3 using namespace std;
    4 
    5 int main()
    6 {
    7     cout<<MathFuncs::myMathFun::Add(1.1,2.2)<<endl;
    8     return 0;
    9 }

    5.设置该工程的属性
    将之前生成的lib,dll和.h文件提出来放到一个文件夹(我放在桌面的temp文件其路径为C:UsersLCDesktop emp)

    设置属性:项目-->属性-->c/c++-->常规-->附加包含目录中输入:C:UsersLCDesktop emp

    项目-->属性-->连接器-->常规-->附加库目录:C:UsersLCDesktop emp

    项目-->属性-->连接器-->输入-->附加依赖项:Test.lib

    属性设置完毕,可以运行程序了。

  • 相关阅读:
    inner join(inner可省) 与 left join 之间的区别
    Jedis+Redis+spring缓存
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>
    js中的blob,图片base64URL,file之间的关系
    批量压缩图片
    xhr 的 onpregress 监听上传数据的 已上传 和 总大小
    如何禁止浏览器 前进功能
    获取页面滚动高度
    bootstrap的字体设置
    忽略 文件夹下的所有node/modules
  • 原文地址:https://www.cnblogs.com/LCCRNblog/p/3625200.html
Copyright © 2011-2022 走看看