منبع:
http://forum.persiantools.com/showpost.php?p=1570443&postcount=43
منبع:
http://www.programmers-corner.com/tutorial/4
ساخت یک dll با ویژوال سی 6 برای استفاده در ویژوال بیسیک 6
ابتدا از منوی فایل گزینه new را بزنید و بعد در پنجره باز شده در تب Projects گزینه Win32 Dynamic-Link Library را بزنید. بعد نامی به پروژه بدهید و مکانش را در هارد مشخص کنید.
در پنجره بعدی گزینه An empty DLL project را انتخاب کنید.
---------------------
بعد بایستی فایلی به پروژه بیافزایید.
از منوی فایل باز new را بزنید و بعد در تب Files گزینه C++ Source File را انتخاب و نام SampleCode بدهید.
---------
بعد مراحل بالا را باز برای افزودن فایل دیگری بروید ولی این بار C/C++ Header File را انتخاب کنید. نام فایل را همنام فایل قبلی بدهید.
------
برای اضافه کردن فایل بعدی مراحل قبل را تکرار کنید ولی این بار گزینه text file را انتخاب کنید و نام exports.def را به آن بدهید.
-------------
اضافه کردن کدها:
به فایل SampleCode.h کد زیر را اضافه کنید:
کد:
#include <windows.h>
int nFirstNum;
int nSecondNum;
به فایل SampleCode.cpp کد زیر را اضافه کنید:
کد:
#include "SampleCode.h"
//This Function will accept a String And two integers
//It will display the String in a message box, And Return
//the sum of the two integers
//This Is intended As a sample of passing info between
//c++ And visual basic
// Function definition
int __stdcall MyFunction(char *szString, int nFirstNum, int nSecondNum)
{
//Display a messagebox With the String (just wanted To show you
//how To pass a String)
MessageBox(NULL,szString,"Sample Code", NULL);
//Return the sum of the two integers. Notice a VB Long Is an Integer
//in c++.
return nFirstNum + nSecondNum;
}
به فایل exports.def کد زیر را اضافه کنید:
--------------------
Build the dll
دکمه F7 را بزنید یا از منوها :
Build > Build SampleProj.dll
بعد این کار در پنجره بیلد باید داشته باشید:
0 errors and 0 warnings
یعنی بی خطا اجرا شود.
حالا در جایی که پروژه را ذخیره کرده اید در پوشه debug فایل dll خود را دارید.
ایجاد نسخه نهایی یا release
از منوی Build گزینه Set Active Configurations را بزنید. پنجره ای باز می شود. Release را انتخاب کنید و ok کنید.
دوباره پروژه را Build کنید.
این بار در مکان ذخیره پروژه یک پوشه جدید به نام Release ایجاد می شود که باز حاوی فایل dll شماست. که قابل استفاده برای ویژوال بیسیک است.
===============================
استفاده در ویژوال بیسیک 6 :
یک پروژه وی بی استاندارد باز کنید.
کد زیر را به پنجره کد بیافزایید:
کد:
Option Explicit
'Declare the c++ dll. In the real world you will probably do this
'in a module. Note the path to your dll might be different than mine.
'Also note that the values are being passed ByVal
Private Declare Function MyFunction Lib _
"[COLOR="Red"]c:\pub\sampleproj\debug\SampleProj.dll[/COLOR]" (ByVal szString As String, _
ByVal nFirstNum As Long, ByVal nSecondNum As Long) As Long
Private Sub Form_Load()
Dim lngResults As Long
'call the function. It should display a messagebox with the string
'which will originate from the dll, and then another messagebox
'from vb with the total of our two longs
lngResults = MyFunction("This is a test.", 5, 4)
MsgBox "The total is " & CStr(lngResults)
Unload Me
End Sub
آدرس فایل dll (
قسمت قرمز) را مطابق مسیر فایل و نام فایل بکنید. (نمی دانم نویسنده اشتباه کرده یا من اشتباه می کنم . مگه نگفت نسخه ریلیز به کار وی بی میاد چرا نسخه دیباگ را استفاده کرده. خودتان تست کنید و حواستان باشد. من که سرسری تست کردم هر دو نسخه در وی بی جواب می داد.)
پروژه وی بی را اجرا کنید.
سالک : من مراحل بالا را انجام دادم مشکلی نبود.
در دلفی 7 هم همین dll که اینجا ساخته شد را استفاده کردم.
برای یادگرفتن طرز استفاده از dll در دلفی به این پست مراجعه کنید:
http://www.parsiforums.com/vb/showpost.php?p=29438&postcount=2