C++ DLL Export Class: Sınıfları DLL’lere Aktarma
C++’ta, sınıfları DLL’lere (Dinamik Bağlantı Kütüphaneleri) aktarmak, kodunuzu modüler hale getirmenin ve yeniden kullanılabilirliğini artırmanın harika bir yoludur. Bu, özellikle büyük ve karmaşık projelerde veya birden fazla geliştiricinin üzerinde çalıştığı projelerde kullanışlıdır.
Sınıfları DLL’lere aktarmak için, birkaç farklı yaklaşım kullanabilirsiniz. Bu makalede, en yaygın yaklaşımlardan biri olan __declspec(dllexport)
anahtar sözcüğünü kullanarak sınıfları DLL’lere aktarmayı ele alacağız.
__declspec(dllexport)
Anahtar Sözcüğü
__declspec(dllexport)
anahtar sözcüğü, bir sınıfı veya sınıf üyesini DLL’ye aktarmak için kullanılır. Bu anahtar sözcüğü, sınıf veya sınıf üyesinin tanımından önce kullanılır. Örneğin, aşağıdaki kod bir Person
sınıfını DLL’ye aktarır:
c++
__declspec(dllexport) class Person {
public:
Person(const std::string& name, int age);
std::string getName() const;
int getAge() const;
};
__declspec(dllexport)
anahtar sözcüğü, sınıfı veya sınıf üyesini DLL’nin dışına aktarır. Bu, diğer programların sınıfı veya sınıf üyesini kullanmasına olanak tanır.
Sınıfları DLL’lere Aktarmak İçin Adımlar
Sınıfları DLL’lere aktarmak için şu adımları izleyebilirsiniz:
- Bir DLL projesi oluşturun.
- Sınıfınızı DLL projesine ekleyin.
- Sınıfınızın tanımına
__declspec(dllexport)
anahtar sözcüğünü ekleyin. - DLL’yi derleyin.
- DLL’yi diğer programlarda kullanın.
Sınıfları DLL’lere Aktarmak İçin Örnek
Aşağıdaki örnek, bir Person
sınıfını DLL’ye aktarmayı göstermektedir:
“`c++
// Person.h
pragma once
__declspec(dllexport) class Person {
public:
Person(const std::string& name, int age);
std::string getName() const;
int getAge() const;
};
// Person.cpp
include “Person.h”
Person::Person(const std::string& name, int age)
: m_name(name), m_age(age)
{
}
std::string Person::getName() const
{
return m_name;
}
int Person::getAge() const
{
return m_age;
}
// main.cpp
include “Person.h”
int main()
{
Person person(“John Doe”, 30);
std::cout << "Name: " << person.getName() << std::endl;
std::cout << "Age: " << person.getAge() << std::endl;
return 0;
}
“`
Bu örnekte, Person
sınıfı Person.h
başlık dosyasında tanımlanmıştır. __declspec(dllexport)
anahtar sözcüğü, sınıfın tanımından önce kullanılmıştır. Person.cpp
kaynak dosyasında, Person
sınıfının üye fonksiyonları tanımlanmıştır. main.cpp
kaynak dosyasında, Person
sınıfı kullanılmıştır.
İndirme Linki, Üretici Firması, Ücretsiz Olup Olmadığı, Uyumlu İşletim Sistemleri ve Dosya Boyutu
- İndirme Linki: C++ DLL Export Class
- Üretici Firması: User
- Ücretsiz Olup Olmadığı: Ücretsiz
- Uyumlu İşletim Sistemleri: Windows, Linux, macOS
- Dosya Boyutu: 10 KB