日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

怎样在C++Builder中创建使用DLL

發布時間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎样在C++Builder中创建使用DLL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

  動態鏈接庫(DLL)是Windows編程常遇到的編程方法,下面我就介紹一下在

BCB (C++Builder下簡稱BCB) 中如何創建使用DLL和一些技巧。

  一、創建:

  使用BCB File|NEW建立一個新的DLL工程,并保存好文件BCB,生成一個DLL

的程序框架。

  1.DllEntryPoint函數為一個入口方法,如果使用者在DLL被系統初始化或

者注銷時被調用,用來寫入對DLL的初始化程序和卸載程序;參數:hinst用來指

示DLL的基地址;reason用來指示DLL的調用方式,用于區別多線程單線程對DLL

的調用、創建、卸載DLL;

  2.在程序中加入自己所要創建的DLL過程、函數;

  3.用dllimport描述出口;

  例程序如下:

? 。nclude

? 。ragma hdrstop

  extern “C” __declspec(dllexport) int test();

  int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason,

void*)

  {

   return 1;

  }

  int test()

  {

   return 3;

  }

  注意:動態鏈接庫中調用過程、函數時有不同的CALL方式 __cdecl、

__pascal, __fastcall、__stdcall,BCB中默認的方式為__cdecl(可不寫),如

果考慮兼容性可用時__stdcall聲明方法為:

  extern “C” __declspec(dllexport) int __stdcall test();

  對于其中過程、函數也改為:

  int __stdcall test()

  二、使用DLL

  在BCB中使用DLL有兩種方法:

  1.用靜態調用法

  首先需要在BCB的項目中加入輸入接口庫(import library),打開工程項目

,使用BCB View|Project Manager打開項目列表,向項目中加入接口庫(*.

lib)。

  其次在頭文件中加入接口聲明。

  例程序如下:

   //define in include file

  extern “C” __declspec(dllimport) int __cdecl test();

  //use function in main program

  int I;

  I=test();

  注意:

  (1)動態鏈接庫調用過程、函數時CALL方式 與創建時方式一樣不寫為

__cdecl,其它需要聲明。

  (2)BCB創建的DLL有對應的輸入接口庫(import library),如只有DLL而無庫

時,可用BCB的implib工具產生:implib xxx.lib xxx.dll;另外可用:tlib

xxx.lib,xxx.lst 產生DLL的內部函數列表,許多Windows的未公開技術就是用這

種方法發現的。

  2.動態調用法

  動態調用法要用Windows API 中的LoadLibrary()和GetProcAddress()來調

入DLL庫,指出庫中函數位置,這種方法較常見。

  例程序如下:

   HINSTANCE dd;

?

   int _stdcall (*ddd)(void);

   dd=LoadLibrary(“xxx.dll”);

   ddd=GetProcAddress(dd,“test”);

   Caption=IntToStr(ddd());

  FreeLibrary(dd);

  三、注意:

  創建DLL時編譯鏈接時注意設置Project Options。

  Packages標簽:去除Builder with runtime packages檢查框。

  Linker標簽:去除Use dynamic RTL檢查框。

  否則創建的DLL需要Runtime packages or Runtime library。

總結

以上是生活随笔為你收集整理的怎样在C++Builder中创建使用DLL的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。