程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> VC下的鏈接庫

VC下的鏈接庫

編輯:vc教程

一、靜態鏈接庫

        1.靜態鏈接庫的生成方法

        在vc下建立一個新項目,項目類型選擇win32 static library,然後在項目中加入.h.cpp.c文件,編譯鏈接後就會生成一個靜態鏈接庫.lib文件。

        如果想要取得盡量好的與平台無關性,則在.h文件頭加入extern "C",強制編譯器以C方法編譯.cpp的文件,生成的文件名不會像.cpp那樣給函數加上一堆附加信息。這樣其他的編譯器也可能識別他。但是這種方法只適合沒有用到C++重載等特性時才可以使用。

       2.靜態鏈接庫的使用

       把以上生成的.lib和.h文件加入到工程中去,在project選項中選擇setting,然後在link中添加*.lib,表示鏈接時用到他,在項目文件中加入#include "*.h"即可使用這個靜態鏈接庫

二、動態鏈接庫

        1.動態鏈接庫的生成方法

        在vc下建立一個新項目,項目類型選擇win32 dynamic link library,然後在項目中添加.h.cpp.c文件,編譯鏈接後就會生成.dll文件。

         也可以在resource files文件夾下生成一個.def文件,文件內容如下:
         LIBRARY            *.dll
         EXPORTS        
                                     dll中的函數名
         這個def文件在編譯後會生成.lib文件,他是用於解析dll中函數用的。

        2.動態鏈接庫的使用方法一

        把.lib、.dll、.h三個文件都放到工程中去,在工程文件中加入#include "*.h"文件,選擇project的setting選項,然後在link中加入.lib文件,即可使用該庫。

        3.動態鏈接庫的使用方法二

       把.dll、.h三個文件都放到工程中去,在工程文件中加入#include <Windows.h>,做一個函數指針和一個handle,函數指針指向你要用的,handle類型為HMODULE,如示:

    typedef void (*PFN)();
    HMODULE hdll = ::LoadLibrary("mydll.dll");
    PFN pfn = (PFN)::GetProcAddress(hdll,"helloWord");
    (*pfn)();
    ::FreeLibrary(hdll);       這種方法不用在setting的link中加入lib。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved