Favorilerine Ekle | Giriş Sayfan Yap | Tavsiye Et

 

Kurs Tanıtım Sayfası | Süper Üye Kimdir? | Menü Tasarımı Konulu Örnek Ders
Kod İndir| Hazır Kodlar | Makaleler| İpuçları | VB .NET Kursu | Dersler | Forum | Alt Bölümler | Servisler
    Merhaba Misafir
    anasayfa » visual basic makaleleri » C/C++ Basic Dillerinin Birlikte Kullanımı
Üye Girişi
Kullanıcı Adı:  
Şifre : 
Kaydet ?
Siteden tam olarak faydalanabilmek için üye olmalısınız.
Unuttuğunuz şifrenizi öğrenebilmek için kayıt sırasında verdiğiniz Hatırlatma Cevabı'nı bilmeniz gereklidir.
Şifre hatırlatma işlevini sadece 3 defa kullanma hakkınız vardır.
Kullanıcı adını ve şifresini unutan üyelere email ile yardım verilmez.

Aktivasyon Gelmedi mi?Aktivasyon mesajınız email adresinize gelmedi mi?
Buraya tıklayarak bir kez daha aktivasyon mesajı gönderilmesini sağlayabilirsiniz.
Lütfen email hesabınızın BULK ve SPAM klasörlerini de kontrol ediniz.
Rastgele Makale

vb kısaca

Yazar: kodela
visual basic


Webmasterlar
Sitenize Ekleyin!
Sitenizde "Son Eklenen 10 Visual Basic Yazısı"'nı göstermek ve içeriğini zenginleştirmek için buraya tıklayınız.

Vbasicmaster.com'a link verin!
Aşağıdaki minik banneri sitenize eklemek için tıklayın!

Üye Sayısı:
Ziyaretçiler nerede?
Yayın № : 3673
Yayın Tar:11.07.2005
Yazar : zombi
Hit :6912

Bu Yazarın Yazıları Sadece bu yazarın  göster
Bu Yazıyı Tavsiye Et

Merhaba ardaşlar uzun zaman sonra yeniden beraberiz....
konuya girmeden önce burada anlatacaklarım için her iki dilede hakim olmak gerek eğer C/C++ bilmiyor yada kendiniz yeterli görmüyor sanız C/C++ öğrendikten sonra okumanızı tavsiye ediyorum

Önemli bir ayrıntı herkesin ulaşılabileceği bir geliştirme ortamı olduğundan uygulamayı DevC++ IDE ve VB 6 üzerinde ve C++ dili kullanrak fakat C++ sınıflarına girmeden anlatacağım . Farklı C/ C++ derleyicide bu iş farklı bir şekilde yapılıyor olabilir. fakat temel prensibler aynıdır mantığı analaşıldıktan sonra VC de yada C++ Builder da rahatlıkla yapılabilir
DevC++ ı aşağıdaki adresten ücretsiz olarak temin edebilir siniz

http://www.bloodshed.net


Öncelikle devc++ file->new->project
new project pencersinden Dll ve C++ project i seçiyoruz ardından ok basıyoruz ve projeyi kayıt ediyoruz
devc++ bize biri c++ diğeri header dosyası olmak üzere gerekli tanımlamaların olduğu iki dosya oluşturdu


//Dll.h dosyası
#ifndef _DLL_H_
#define _DLL_H_

#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */


class DLLIMPORT DllClass
{
public:
DllClass();
virtual ~DllClass(void);

private:

};


#endif


C/C++ bildiğinizi kabul ediyor ve bu tanımlama kısımlarını anlatmıyorum


//Dllmain.cpp dosyası

/* Replace "dll.h" with the name of your header */
#include "dll.h"
#include <windows.h>

DllClass::DllClass()
{

}


DllClass::~DllClass ()
{

}


BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ ,
DWORD reason /* Reason this function is being called. */ ,
LPVOID reserved /* Not used. */ )
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
break;

case DLL_PROCESS_DETACH:
break;

case DLL_THREAD_ATTACH:
break;

case DLL_THREAD_DETACH:
break;
}

/* Returns TRUE on success, FALSE on failure */
return TRUE;
}

Baştada söylediğim gibi classlara girmiyorum isterseniz silebilirsiniz
şimdi c++ mesaj veren bir uygulama yapalım

eğer biz normal şartlarda bir dll yazıyor olsaydık void Msg (void); şeklinde bir prototip geçerliydi
ancak Basic için yazmak işibiraz zorlaştırıyor

Fonksiyonun prototipni dll.h dosyasına aşağıdaki gibi tanımlıyoruz



#ifndef _DLL_H_
#define _DLL_H_

#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */

// dışardan çağır C yi derleyiciye söylemek istediğimiz fonksiyonun dışarıdan çağrılacağı

extern"C"__declspec(dllexport) void _stdcall DLLIMPORT Msg (void);

#endif



dllmain.cpp dosyasına fonksiyonu yazıyoruz


#include "dll.h"
#include <windows.h>

void _stdcall DLLIMPORT Msg (void)
{
MessageBox (NULL, "C++ dan VBasic e selamlar", "Selam", MB_OK);
}

BOOL APIENTRY DllMain (HINSTANCE hInst , DWORD reason , LPVOID reserved)
{

return TRUE;
}


crtl +F11 basarak projeyi rebuild ediyoruz.
eğer bir hata yoksa projenin kayıtlı olduğu dizine dll dosyası olucaktır

evet... sıra geldi en heyecalı bölüme açıyoruz basic i file new project
form var orda muhtemelen formun global deklarasyon alanına dll mizi ve fonksiyonu tanıyoruz
Dll nin system32 olmalı yada VB projenizle aynı klasörü paylaşacağını ututmayın


Private Declare Function Msg Lib "Project1.dll" ()

artık bir buton ekleyip sonuca bakalım

Private Sub Command1_Click()
On Error Resume Next
Msg
End Sub


evet msg geliyor...
ornek uygulama dosyalarını siteye ekliyorum CppveVasic.zip
Bir dahaki bölümde VB ile C++ arası veri transferi ne bakalım şimdilik bukadar yani veriyi işleyelim hoşcakalın




Yorumlar, eklemeler ve düşünceler
        Ustad Çok Sağol Çok Teşekkürler ellerine sağlık

   Yuji-Amca, 20.07.2005 02:34
   TŞK EDERİM

   TIRTILX, 22.07.2005 21:34
   slm arkadaşlar ben bu sitede yeniyim fakat bana acilen c/c++ dökümanaları lazım forumda yayınlayabilrseniz çok sevinirim şimdiden tşk

   worm56, 18.10.2006 12:50
   Slm,

Gayet açıklayıcı yazmışsın tşk. Benim bir sorum olacak. C de oluşturulmuş bir DLL içinde birkaç fonksiyon var. Ben VBasic kullanarak bu fonksiyonlara değer göndereceğim ve bu fonksiyonlar da gelen değerlere göre işlem yapacak. C de DLL hazır fakat Vbasic de Declare etmeme rağmen fonksiyonları çağıramıyorum. Compile error Sub or function not defined hatası veriyor. Sanırım doğru declare edemiyorum. Örnek uygulama varsa sevinirim.


   huseyin45, 29.12.2007 10:11
© Hakan Ersöz 2000-2013| Üyelik Sözleşmesi | | Ödeme Bildirimi
Sitemizden yenilikleri hemen öğrenin, pop upları engelleyin, chat yapın... ToolBarımızı indirin:
Vasicmaster Toolbar'ı indirin