You need to enable JavaScript to run this app.

Skip to main content

C++/CLI yardımıyla rastgele sayı üretimi

C++/CLI yardımıyla rastgele sayı üretimi

Posting Freak
C++/CLI yardımıyla rastgele sayı üretimi
Eğer C++/CLI programladıysanız iki seçeneğiniz olduğunu biliyorsunuzdur. Bunlar Püre mode ve IJW modu. Püre modda güvensiz bağımsız kod çalıştırılmaz ve bütün yazdığınız kodlar .net frameworkun anlayacağı dile dönüştürülür. Bunun dışında bağımsız callback kullanamazsınız. IJW ise aslında anlamı It Just Work(s) yani sadece çalışıyor. Mantık aynı ama bağımsız kodlarda çalıştırılıyor hatta bağımsız callback bile kullanabilirsiniz. Şimdi kodlarımıza geçelim:

// Standart kafa dosyalarının eklendiği dosyayı ekliyoruz
#include <vector>
#include <algorithm>
#include <msclr\auto_gcroot.h> // gcroot sınıfı burda olmazsa olmazımız...

using namespace System; // MS.NET'in Standart isim uzayı

// Random fonksiyonu
int random();


// int tipinde verileri tutmak için yönetimli taşıyıcı oluşturuyoruz
typedef std::vector<int> INTVector;

// Uygulamamız için giriş noktası
int wmain()
{
// Konsolun başlığını değiştiyoruz
Console::Title = L"CLI Random Demo....";

INTVector v( 5000 );
// vektore 5000 tane rast gele sayı oluşturuyoruz
std::generate_n( v.begin(), 5000, random );
std:Confusedort( v.begin(), v.end() );

System::IO::StreamWriter ws( L"randım.txt", // Rastgele sayıları dosyaya yazcam
false, // Dosyanın sonuna eklenmesin
System::Text::Encoding::GetEncoding( 28599 ) // ISO Türkçe desteğile yazıyoruz
);

for ( INTVector::const_iterator SabitErisici = v.begin(); SabitErisici != v.end(); SabitErisici++ )
{
System::Console::WriteLine( (*SabitErisici).ToString() );
ws.WriteLine( (*SabitErisici).ToString() );
}




// Otomatik nesne gebertme...
GC::Collect( 0, GCCollectionMode::Forced );
Console::Read();
return 0;
}

int random()
{
static msclr::auto_gcroot<System::Random^> rnd( gcnew System::Random() );
return rnd->Next();
}




işte bu kadar.



[Resim: www.zohreanaforum.com] [COLOR=#c5003f]Burda rnd değişkeninin static tanımlandığına dikkat ediniz. Yoksa birden fazla çağırmadan sonra bellek sızıntısı oluşabilir.

Yukarıdaki kodla c++ uygulamalarını .net framework ile nasıl kullanabileceğimizi gördük aslında...
[Resim: 114ld.jpg]



Ben göremem daha uzun boyunu
Ahret derler kısaltamam yolunu
Bugün Sahı Merdan sarsın oglunu
Yetis Ya Üseyin baban gidiyo

İçerik sağlayıcı paylaşım sitesi olarak hizmet veren Pir Zöhre Ana Forum sitemizde 5651 sayılı kanunun 8. maddesine ve T.C.K'nın 125. maddesine göre tüm üyelerimiz yaptıkları paylaşımlardan kendileri sorumludur. Sitemiz hakkında yapılacak tüm hukuksal şikayetleri İletişim bağlantısından bize ulaşıldıktan en geç 3 (üç) gün içerisinde ilgili kanunlar ve yönetmenlikler çerçevesinde tarafımızca incelenerek, gereken işlemler yapılacak ve site yöneticilerimiz tarafından bilgi verilecektir.