您的位置:首页 > 其它

控制台生成DLL文件的方法

2013-10-12 12:23 495 查看
 
一:编译生成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)编译,链接后,程序可以直接运行,不需要任何依赖!
 
附一:
//FasterString.h
class __declspec(dllexport) FasterString
{
    private:
       char *m_psz;
    public:
       FasterString(const char *psz);
       ~FasterString();
      
       int Length() const;
};
 
附二:
//FasterString.cpp
#include"FasterString.h"
#include<string.h>
 
FasterString::FasterString(const char *psz):m_psz(new char[strlen(psz) + 1])
{
    strcpy(m_psz, psz);
}
 
FasterString::~FasterString()
{
    delete[] m_psz;
}
 
int FasterString::Length() const
{
    return strlen(m_psz);
}
 
附三:
//TestString.cpp
#include<iostream>
#include"FasterString.h"
using namespace std;
 
int main()
{
    char psz[] = "Hello, World!";
   
    FasterString fs(psz);
   
    cout<<"char*: "<<psz<<"\nLenght: "<<fs.Length()<<endl;
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息