Pazar, Şubat 28, 2010

VMWare "Exception Processing Message c00000a3..." Hatası

VMWare ile sanal makine oluşturup Ubuntu kurmaya niyetlendim. Fakat sanal makineyi oluşturduktan sonra makineyi başlatırken başlıktaki hata ile karşılaştım. Hatanın tam şekli aşağıdaki gibi

Exception Processing Message c00000a3 Parameters 75b6bf9c 4 75b6bf9c 75b6bf9c

Hatayı göz ardı edip kuruluma devam ettim. Kurulum sorunsuz gerçekleşti lakin sanal makineyi her başlattığımda aynı hatayı alıyodum. İnternette benzer sorunlarla karşılaşanlar varmı diye aramaya başladım. Bir kaç linkten sonra aradığımı buldum. Sürücülerle ilgili bir hataymış. Kimi HDD sinden kimi CD-Rom undan kimide disket sürücüsünden dolayı aynı hata ile karşılaşmış. O zaman dank etti kafama, benim pc de disket sürücü yoktu. Sanal makine de olmayan bir sürücüye bağlanmaya çalışıyo haliyle de bulamayınca hata veriyo tabi. Bende hemen sanal makinenin disket sürücü ayarlarından “Connect at power on” seçeneğindeki tiki kaldırdım ve sorun halloldu.


Cumartesi, Şubat 13, 2010

Allegro ile Ekrana Yazı Yazdırma

Uzun metinsel ifadeleri ekrana yazdırmada textout_ex() fonksiyonu kullanılır.
void textout_ex(BITMAP *bmp, const FONT *f, const char *s, int x, int y, int color, int bg);

Parametreleri

BITMAP *bmp = Yazının yazılacağı yer
const FONT *f = Font tipi
const char *s = Ekrana basmak istediğimiz metin
int x, int y = Yazının ekranda görünmesini istediğimiz koordinatlar
int color = Yazı rengi
int bg = Arka plan rengi. Eğer -1 değeri verilirse arka plan transparan olur


İki Yana Yaslı Yazma

İki yana yaslı yazı yazdırmak için textout_justify_ex() fonksiyonu kullanılır.
void textout_justify_ex(BITMAP *bmp, const FONT *f, const char *s, int x1, int x2, int y, int diff, int color, int bg);

Parametreleri

int x2 = Yazının x ekseninde ne kadar genişlikte olacağı
int diff = Yazının toplam genişliği ile "x2" değeri arasındaki fark "diff" ile belirtilen değerden küçük ise yaslama işlemi yapılır.


Sayısal İfadeleri Yazdırma

Yukarıda verdiğim fonksiyonlar ile metinsel ifadeleri ekrana yazdırırız. Duruma göre değişiklik gösteren sayısal ifadeleri yazdırmak içinse textprintf_ex() fonksiyonu kullanılır. Kullanımı C'deki printf() fonksiyonuna benziyor.

void textprintf_ex(BITMAP *bmp, const FONT *f, int x, int y, int color, int bg, const char *fmt, ...);

Parametreleri

const char *fmt = Yazı formatı. C'deki printf() fonksiyonunun kullanımına bakmanızı tavsiye ederim.


2 Adet Faydalı Fonksiyon: text_length() ve text_height()

text_length() ile parametre olarak girilen dizge nin uzunluğunu text_height() ile de kullanılan fontun yüksekliğini pixel cinsiden buluruz.

int text_length(const FONT *f, const char *str);
int text_height(const FONT *f)


Örnek:

#include <iostream>
#include <allegro.h>

int main()
{
allegro_init();
install_keyboard();
set_gfx_mode(GFX_AUTODETECT,640,480,0,0);

char *isim="Esat";
int uzunluk=text_length(font,isim);

//"font" değişkeni allegro.h ile extern ediliyor.
//Bizim ayrı yeten oluşturmamıza gerek yok.
textout_ex(screen, font, "Merhaba Dünya", 10, 10,
makecol(0, 0, 255), -1);
textprintf_ex(screen,font,10,25,makecol(255,0,0),makecol(0,0,255),
"İsim: %s -- Uzunluk: %d",isim,uzunluk);

int yukseklik = 50;
char *metin[] = {"Şimdide textout_justify_ex()",
"fonksiyonunun nasıl çalıştığını",
"anlamak için bir örnek",
"program yazalım",'\0'};

//Hizalandığını göermek için bir dik çizgi çizelim
vline(screen, 275, 0, SCREEN_H-1, makecol(200,200,0));
for (int i=0;metin[i];i++)
{
textout_justify_ex(screen,font,metin[i],10,275,yukseklik,80,
makecol(255,0,0),makecol(0,255,0));
yukseklik +=text_height(font);
}

readkey();
return 0;
}
END_OF_MAIN();

Perşembe, Şubat 11, 2010

Mad Men Tanıtım Müziği

TV de ilk gördüğümde bu şarkıyı netten arayıp bulayım diye aklıma not etmiştim. Ama o notu hatırlamak baya uzun sürdü.Kısmet bugüneymiş. İlk dinlediğimde bu şarkıyı kesin zenci birisi söylüyodur demiştim (Yabancılarda böyle yanık ses bi onlarda var çünkü:D). Yanılmamışım da zaten söyleyen bir zenciymiş James Brown.

James Brown çok dinlemesem de yabancısı olmadığım biri aslında. "I feel good" şarkısından ötürü tanımışlığım var kendisini. Bu arada bahsi geçen şarkının ismini yazmayı unutmuşum :). "Its a mans mans world" şarkı bu. Youtube den bulduğum videosunu buradan paylaşıyorum.