[今天的編程日記, 在vb中使用vc編譯的dll執行個體]

來源:互聯網
上載者:User

18:07 2003-12-3
今天,仿照著書,我使用vc編了一個動態連結程式庫(dll)--a.dll,然後將它複製到windows/system/目錄下面,之後建立了一個vb程式,並在程式中聲明了a.dll中的函數add(),實現兩個整形數的加法運算。
實現過程如下:
一、建立dll
開啟vc,建立一個基於API的DLL.

---- 1.在FILE- >NEW- >PROJECTS中選擇"WIN32 Dynamic-Link Library"在Project Name中輸入 "a"按OK
---- 2.在FILE- >NEW- >FILES中選擇C++ SOURCE FILE,在FILE中輸入a.cpp,按OK
---- 3.在FILE- >NEW- >FILES中選擇TEXT檔案,在FILE中輸入a.h,按OK
---- 4.在FILE- >NEW- >FILES中選擇TEXT檔案,在FILE中輸入a.def,按OK

---- 5.源檔案:

代碼
//---------------------------
//a.cpp
#include < windows >
WINAPI int add(int a,int b)
{ return (a+b);
}
//---------------------------
//a.h
WINAPI int add(int a,int b);
//---------------------------
//a.def
LIBRARY      "a";指出DLL的名字
DESCRIPTION  'a Windows Dynamic Link Library'
;描述DLL的用途(此句可選)
EXPORTS      add;匯出函數的名字

------6.編譯成a.dll
------7.將a.dll複製到windows/system/目錄下面

二、建立vb程式
在form1中輸入

代碼

Option Explicit
Private Declare Function add Lib "a.dll" (ByVal a As Integer, ByVal b As Integer) As Integer

Private Sub Command1_Click()
Text3.Text = Str(add(Val(Text1.Text), Val(Text2.Text)))
End Sub


程式介面如:

我在編程過程中遇到的問題:
在將a.dll複製到程式目錄下之後(此時我沒有將a.dll複製到windows/system/目錄下面),運行程式,結果報錯!如:

後來我將a.dll複製到E:盤,將

代碼
Private Declare Function add Lib "a.dll" (ByVal a As Integer, ByVal b As Integer) As Integer改為Private Declare Function add Lib "E:/a.dll" (ByVal a As Integer, ByVal b As Integer) As Integer
,再次運行程式,也成功了!
不知道這是什麼原因,書上說通常調用DLL時所需的DLL檔案必須位於以下三個目錄之一:

  (1)Windows的系統目錄:/windows/system;

  (2)DOS中path所指出的任何目錄;

  (3)程式所在的目錄。
不知道我在滿足第三個條件的情況下,為什麼會出錯?=================================================
21:36 2003-12-3
今天晚上,我到圖書館去看書,終於明白了為什麼下午的程式會出錯了.

最主要的原因是因為按F5執行程式時,程式還是處於調試階段,所以它找不

到a.dll,想到這裡,我把程式MAKE為應用程式,終於一切正常了。真是感到很欣

慰~
==========================此文最早發在刺客之光網站http://www.thugx.com/main/index.php?showtopic=3250==========================

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.