怎么创建dllwenjian_如何创建和使用dll及lib文件

本文详细指导如何在Visual Studio 9 (VC9) 中创建和使用DLL与LIB文件,重点讲解不依赖MFC的步骤,包括创建动态链接库(DLL)、静态链接库(LIB)的方法,以及如何在其他项目中引用和编译它们。
摘要由CSDN通过智能技术生成

Abstract

如何在VC9环境下创建和使用dll及lib文件,但不用MFC。

一、创建dll

参见文章[zz]lib和dll文件的区别和联系。用方法一,在VC9下测试通过。

创建一个Dynamic Library工程,方法是New Project -> Win32

Console Application -> 在Win32 Application

Wizard中选择DLL和Empty project ->

Finish。假设工程名为testdll。

将文章[zz]lib和dll文件的区别和联系中的h文件和cpp文件copy到工程中。假设两个文件分别是testdll.h和testdll.cpp。不过最好把

#define MYLIBAPI extern "C" _declspec (dllexport)

放在头文件中,因为头文件将会被重用。把这一句放在头文件中可以减小代码量。否则必须在调用程序(主程序)中也写上这一句。

二、使用dll

创建一个空的Win32 Console

Application。命名为calldll。将前面建立的testdll中的testdll.h添加到工程中。这里也可以在工程properties

-> C/C++ -> General ->

Additional Include Directories中添加testdll的目录,则下面简单地写成#include

"testdll.h"就可以了。新建calldll.cpp如下:

#include

#include "testdll工程目录\testdll\testdll.h"

int main()

{

int x=1,y=2;

printf("%d + %d = %d\n",x,y,Add(x,y));

getchar();

}

将前面生成的testdll.lib(注意是lib不是dll)添加到工程中。方法是 Project

-> calldll Properties -> Linker

-> Input -> Additional

Dependenies,添加$(TargetDir)\testdll.lib。同时将前面生成的testdll.lib和testdll.dll拷贝到calldll工程的Debug目录下。这样就可以编译成功了。

三、创建lib

创建Winew Static Library工程。头文件与cpp文件与创建dll类似,不过去掉_declspec

(dllimport),只保留extern "C"。个人怀疑去掉这个extern "C"也是可以的,就留给后人去试吧。

四、使用lib

创建一个空的Win32 Console

Application。命名为calllib。将前面建立的testdll中的testdll.h添加到工程中。这一步与使用dll相同。也可以直接将.h文件copy到calllib目录下。新建calllib.cpp如下:

#include

#include "dll.h"

//LIB testlib.lib

#pragma

comment(lib,"C:\\Users\\Arthur\\Documents\\practise_cpp\\libAndDll\\calllib\\Debug\\testlib.lib")

int main()

{

int x=1,y=2;

printf("%d + %d = %d\n",x,y,Add(x,y));

getchar();

}

将前面生成的testdll.lib拷贝到calllib工程的Debug目录下。不需要像引用dll一样添加Additional

Dependencies。

这样就可以编译成功了。当然,如果不想写#pragma这样一句话,也可以像引用dll一样添加Additional

Dependencies,在使用OpenCV的时候就是这样做的。

--------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值