自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何實(shí)現(xiàn)C++Builder調(diào)用DLL

開(kāi)發(fā) 后端
C++Builder里調(diào)用DLL所需的三個(gè)元素:DLL 本身,帶有函數(shù)原型的頭文件,用來(lái)連接的引入庫(kù),下面文章一一為您講述。

嘗試著進(jìn)行 C++Builder生成的 DLL 之前,回顧一下如何調(diào)用一個(gè) C++Builder 創(chuàng)建的 DLL 可能會(huì)有給您的操作帶來(lái)很大幫助,你可以在運(yùn)行時(shí)載入 DLL,而不是使用引入庫(kù)。

調(diào)用 DLL 函數(shù),首先通過(guò)選擇菜單 Project | Add to Project 的方法,把引入庫(kù)添加到你的 C++Builder 工程里;其次,在需要調(diào)用 DLL 函數(shù)的 C++ 源文件里為 DLL 頭文件插入 #include 聲明;***添加調(diào)用 DLL 函數(shù)的代碼。程序清單 A 和 B 包含了做為測(cè)試 DLL 的源代碼。注意,測(cè)試代碼實(shí)現(xiàn)了兩種不同的調(diào)用習(xí)慣(__stdcall 和 __cdecl)。

這樣幫是有充分的理由的。當(dāng)你設(shè)法調(diào)用一個(gè)用 Visual C++ 編譯的 DLL 時(shí),大多讓你頭疼的事情都是由于處理不同的調(diào)用習(xí)慣產(chǎn)生的。還要注意一點(diǎn),有一個(gè)函數(shù),它沒(méi)有明確列出使用的調(diào)用習(xí)慣。這個(gè)未知函數(shù)作為不列出調(diào)用習(xí)慣的 DLL 函數(shù)的標(biāo)識(shí)。

  1. #ifdef __cplusplus  
  2.   extern "C" {  
  3.   #endif  
  4.   #ifdef _BUILD_DLL_  
  5.   #define FUNCTION __declspec(dllexport)  
  6.   #else  
  7.   #define FUNCTION __declspec(dllimport)  
  8.   #endif  
  9.   FUNCTION int __stdcall StdCallFunction(int Value);  
  10.   FUNCTION int __cdecl CdeclFunction (int Value);  
  11.   FUNCTION int UnknownFunction(int Value);  
  12.   #ifdef __cplusplus  
  13.   }  
  14.   #endif  
  15.   //------------------------------------------  
  16.   //Listing B: DLL.C  
  17.   #define _BUILD_DLL_  
  18.   #include "dll.h"  
  19.   FUNCTION int __stdcall StdCallFunction(int Value)  
  20.   {  
  21.    return Value + 1;  
  22.   }  
  23.   FUNCTION int __cdecl CdeclFunction(int Value)  
  24.   {  
  25.    return Value + 2;  
  26.   }  
  27.   FUNCTION int UnknownFunction(int Value)  
  28.   {  
  29.    return Value;  
  30.   } 

從清單 A 和 B 創(chuàng)建測(cè)試 DLL,打開(kāi) C++Builder,選擇菜單 File | New 調(diào)出 Object Repository。選擇 DLL 圖標(biāo),單擊 OK 按鈕。C++Builder 會(huì)創(chuàng)建一個(gè)新的工程,帶有一個(gè)源文件。這個(gè)文件包含一個(gè) DLL 的入口函數(shù)和一些 include 聲明。現(xiàn)在選擇 File | New Unit。

保存新的單元為 DLL.CPP。從清單 A 拷貝粘貼文本插入頭文件 DLL.H。從清單 B 拷保存工程為 BCBDLL.BPR。接下來(lái),編譯工程,看看生成的文件。C++Builder 生成了一個(gè) DLL 和以 .LIB 為擴(kuò)展名的引入庫(kù)。

這時(shí),你有了在 C++Builder 里調(diào)用 DLL 所需的三個(gè)元素:DLL 本身,帶有函數(shù)原型的頭文件,用來(lái)連接的引入庫(kù)。現(xiàn)在我們需要一個(gè)用來(lái)調(diào)用 DLL 函數(shù)的 C++Builder 工程。在 C++Builder 里創(chuàng)建一個(gè)新的工程,保存到你的硬盤(pán)上。#t#

從 DLL 工程目錄里拷貝 DLL、引入庫(kù)、DLL.H 頭文件到新的目錄。其次,在主單元里添加 #include 聲明,包含 DLL.H。***,添加調(diào)用 DLL 函數(shù)的代碼。清單 C 列出了調(diào)用由清單 A 和 B 生成的 DLL 中每個(gè)函數(shù)的代碼。

責(zé)任編輯:chenqingxiang 來(lái)源: CSDN
相關(guān)推薦

2010-01-26 14:10:22

Visual C++

2010-01-15 09:33:01

CC++Builder

2010-01-21 16:33:44

C++Builder

2010-01-11 10:53:14

C++Builder

2010-01-18 14:25:19

使用C++Builde

2010-01-15 09:48:04

C++Builder

2010-01-11 10:45:43

C++Builder

2010-01-27 09:46:32

C++Builder開(kāi)

2010-09-08 12:30:05

DelphiC++BuilderRAD Studio

2009-08-07 17:22:36

C#調(diào)用dll導(dǎo)出函數(shù)

2009-07-31 17:28:35

C#語(yǔ)言調(diào)用DLL

2009-08-03 12:57:27

C#調(diào)用DLL

2010-01-11 16:19:05

C++ Builder

2010-01-15 10:14:21

C++ Builder

2010-01-15 09:58:38

C++ Builder

2009-08-05 16:41:36

C#調(diào)用VC dll

2009-08-05 09:30:39

C#調(diào)用DLL函數(shù)

2009-09-02 17:16:01

冒泡排序

2009-08-05 09:40:02

C#調(diào)用DLL函數(shù)

2010-01-22 16:21:50

C++ Builder
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)