Lib和Dll工程创建和使用

来源:互联网 发布:淘宝来图定制步骤图片 编辑:程序博客网 时间:2024/06/05 02:43

lib是静态链接库(static link library),是在编译的链接期间使用的,里面就是源文件的函数实现。
Dll成为动态链接库(Dynamic link library),是在程序运行时动态调用,runtime时使用,里面包含源文件的实现,DllMain入口函数和def文件。
创建lib工程
1.建立win32控制台工程
2.在应用程序设置的步骤,选择”静态库 static Library”
3.完成即可
Function.h

void Print();

Function.cpp

#include"Function.h"#include"iostream"using namespace std;void print(){    cout << "Hello World" << endl;}

编译会生成一个以工程名作为名称的Lib文件。

在你的项目工程属性中包含这个Lib文件的头文件目录和Lib文件目录。

头目录包含方法:项目属性(Alt + F7) -> 配置属性 -> C/C++ -> 常规 -> 附加包含目录,里面包含你的Lib库的头文件,你可以使用绝对路径,也可以使用VS中宏表示的相对路径,建议使用相对路径。

Lib文件包含方法:项目属性(Alt + F7) -> 配置属性 -> 链接器 -> 常规 -> 附加库目录,在这里面填写你Lib文件的路径。项目属性(Alt + F7) -> 配置属性 -> 链接器 -> 常规 -> 输入,在这里面填写你Lib文件的名称,例如: Function.lib

创建一个Test项目
test.cpp

#include <stdio.h>#include <stdlib.h>#include "Function.h"int main(){    Print();    system("pause");    return 0;}

创建dll工程
创建Dll工程过程很简单,建立win32控制台工程,在应用程序设置的步骤,选择”动态库 Dynamic Library”,完成即可。
dllmain.cpp(一般不用修改)

#include "stdafx.h"BOOL APIENTRY DllMain( HMODULE hModule,                       DWORD  ul_reason_for_call,                       LPVOID lpReserved                     ){    switch (ul_reason_for_call)    {    case DLL_PROCESS_ATTACH:    case DLL_THREAD_ATTACH:    case DLL_THREAD_DETACH:    case DLL_PROCESS_DETACH:        break;    }    return TRUE;}

Fucntion.h

extern "C" __declspec(dllexport) void Print();

Fucntion.cpp

#include"stdafx.h"#include"Fucntion.h.h"#include"iostream"using namespace std;void print1(){    cout << "Hello World" << endl;}

Test项目用之前创建的。要讲dll文件和exe放在一起才能运行。

0 0