zoukankan      html  css  js  c++  java
  • 控制台生成DLL文件的方法

    编译生成DLL文件的方法:

    方法一:

    1.cl /c FasterString.cpp ------->FasterString.obj

    2.lib /DEF FasterString.obj ------->FasterString.exp and  FasterString.lib

    3.link /dll FasterString.exp FasterString.obj------ >FasterString.dll

     

    方法二:

    1.cl /c FasterString.cpp ------->FasterString.obj

    2.link /dll FasterString.obj ------->FasterString.exp and  FasterString.lib and FasterString.dll

     

    方法三:

    1.cl /LD FasterString.cpp ------>FasterString.obj and  FasterString.exp and FasterString.lib and FasterString.dll

    生成测试程序:

    cl /EHsc TestString.cpp FasterString.lib --->TestString.exe

    以上三种方法生成的FasterString.lib是导入库文件,其中没有SourceCode,所以生成的程序(TestString.exe)运行时需要FasterString.dll文件的支持,如果没该dll文件,则系统加载该程序(TestString.exe)是出错,系统报错

     

    创建标准库文件(静态库文件)的方法

    1.cl /c FasterString.cpp ------->FasterString.obj

    2.lib FasterString.obj --------> FasterString.lib

     

    生成测试程序:

    cl /EHsc TestString.cpp FasterString.lib --->TestString.exe

    上面的方法将生成静态库文,其中含有SourceCode,所以和测试程序(TestString.exe)编译,链接后,程序可以直接运行,不需要任何依赖!

    附一:

     1 //FasterString.h
     2 class __declspec(dllexport) FasterString
     3 {
     4     private:
     5         char *m_psz;
     6     public:
     7         FasterString(const char *psz);
     8         ~FasterString();
     9         
    10         int Length() const;
    11 };

    附二:

     1 //FasterString.cpp
     2 #include"FasterString.h"
     3 #include<string.h>
     4 
     5 FasterString::FasterString(const char *psz):m_psz(new char[strlen(psz) + 1])
     6 {
     7     strcpy(m_psz, psz);
     8 }
     9 
    10 FasterString::~FasterString()
    11 {
    12     delete[] m_psz;
    13 }
    14 
    15 int FasterString::Length() const
    16 {
    17     return strlen(m_psz);
    18 }

    附三:

     1 //TestString.cpp
     2 #include<iostream>
     3 #include"FasterString.h"
     4 using namespace std;
     5 
     6 int main()
     7 {
     8     char psz[] = "Hello, World!";
     9     
    10     FasterString fs(psz);
    11     
    12     cout<<"char*: "<<psz<<"
    Lenght: "<<fs.Length()<<endl;
    13     return 0;
    14 }
  • 相关阅读:
    JSON解析之——Android
    Xml解析之——Java/Android/Python
    Design Pattern —— Singleton
    设计模式(10)--观察者模式
    设计模式(9)--建造者模式
    设计模式(8)--外观模式
    设计模式(7)--模板模式
    设计模式(6)--原型模式
    设计模式(5)--工厂模式
    设计模式(4)--代理模式
  • 原文地址:https://www.cnblogs.com/a-ray-of-sunshine/p/3416083.html
Copyright © 2011-2022 走看看