• 控制台生成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 }
  • 相关阅读:
    李开复给中国学生的第二封信:从优秀到卓越
    李开复写给中国学生的一封信:从诚信谈起
    Cocos2D-x培训课程
    CCLabelAtlas创建自定义字体
    cocos2d-x设计模式发掘之五:防御式编程模式
    【转】VS2010中使用AnkhSvn
    cocos2d-x 2.1.4学习笔记01:windows平台搭建cocos2d-x开发环境
    【转】Win7环境下VS2010配置Cocos2d-x-2.1.4最新版本的开发环境(亲测)
    ffmpeg开发中出现的问题(二)
    ffmpeg开发中出现的问题
  • 原文地址:https://www.cnblogs.com/a-ray-of-sunshine/p/3416083.html
Copyright © 2020-2023  润新知