控制台生成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 }
原文地址:https://www.cnblogs.com/a-ray-of-sunshine/p/3416083.html