日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

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

發(fā)布時(shí)間:2023/12/4 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎么创建dllwenjian_如何创建和使用dll及lib文件 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Abstract

如何在VC9環(huán)境下創(chuàng)建和使用dll及l(fā)ib文件,但不用MFC。

一、創(chuàng)建dll

參見(jiàn)文章[zz]lib和dll文件的區(qū)別和聯(lián)系。用方法一,在VC9下測(cè)試通過(guò)。

創(chuàng)建一個(gè)Dynamic Library工程,方法是New Project -> Win32

Console Application -> 在Win32 Application

Wizard中選擇DLL和Empty project ->

Finish。假設(shè)工程名為testdll。

將文章[zz]lib和dll文件的區(qū)別和聯(lián)系中的h文件和cpp文件copy到工程中。假設(shè)兩個(gè)文件分別是testdll.h和testdll.cpp。不過(guò)最好把

#define MYLIBAPI extern "C" _declspec (dllexport)

放在頭文件中,因?yàn)轭^文件將會(huì)被重用。把這一句放在頭文件中可以減小代碼量。否則必須在調(diào)用程序(主程序)中也寫(xiě)上這一句。

二、使用dll

創(chuàng)建一個(gè)空的Win32 Console

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

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

Additional Include Directories中添加testdll的目錄,則下面簡(jiǎn)單地寫(xiě)成#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。同時(shí)將前面生成的testdll.lib和testdll.dll拷貝到calldll工程的Debug目錄下。這樣就可以編譯成功了。

三、創(chuàng)建lib

創(chuàng)建Winew Static Library工程。頭文件與cpp文件與創(chuàng)建dll類(lèi)似,不過(guò)去掉_declspec

(dllimport),只保留extern "C"。個(gè)人懷疑去掉這個(gè)extern "C"也是可以的,就留給后人去試吧。

四、使用lib

創(chuàng)建一個(gè)空的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。

這樣就可以編譯成功了。當(dāng)然,如果不想寫(xiě)#pragma這樣一句話,也可以像引用dll一樣添加Additional

Dependencies,在使用OpenCV的時(shí)候就是這樣做的。

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

總結(jié)

以上是生活随笔為你收集整理的怎么创建dllwenjian_如何创建和使用dll及lib文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。