Cumartesi, Ocak 27, 2007

"LoaderLock Was Detected" hatasının çözümü

DirectX uygulaması yaparken bolca karşıma çıkan bir problemdi.Birgün düşündüm ve bu soruna şöyle bir çözüm getirdim.VS 2005 te Debug menüsünden Exceptions... başlığına girdim ve oradan Managed Debugging Assistants a tıkladım açılan ağaç görünümünden LoaderLock u buldum ve tikini kaldırdım.

Projemi yeniden çalıştırdığımda aynı hatayı bir daha almadım.Böylelikle sorunumu da çözmüş oldum.Bu yöntemin benimsenmesi registry den işlem yapıp anahtar-değer vermeye oranla daha güvenlidir.Çünkü registry den yaptığımız müddet çalıştırdığımız hiçbir uygulamada exception vermeyecektir.Bu avantaj gibi gözüksede bana dezavantaj gibi geldi.Bazen ne hata yaptığımızı bulup ona göre işlem yapabilmeliyiz öyle değil mi? ;)

Örnek Proje Çaydanlık-DirectX 10.1

Bu makalemde sizlere bir örnek çalışma göstereceğim:Çaydanlık
Çaydanlık örneğini seçmemin nedeni Matematiksel şekilleri en güzel gösterebilen mesh lerden birisidir.Programınıza eklenen her mesh aslında üçgen şekillerinden oluşmuştur.Grafik kartınız ne kadar üçgeni destekliyorsa o kadar iyidir.Ekran kartlarının milyonlarca üçgeni desteklediğini belirtsem herhalde endişenizi yokedecektir.

gelelim çalışmamıza

Sample Browser ı açıp Empty project i bir yere yükleyin,onun üzerinden işlem yapacağız

variables kısmına aşağıdaki kodu yapıştırın

private Mesh teapotmesh = null; //Çaydanlığın render edilmesini sağlayan mesh
private Material teapotmaterial; //Çaydanlığın render edilmesini sağlayan materyaller

OnCreateDevice Metdonu bulup aşağıdaki kodu metodun en sonuna yapıştırın

//Teapot mesh ini ve gereken materyalleri oluştur
teapotmesh = Mesh.Teapot(e.Device);
teapotmaterial = new Material();
teapotmaterial.DiffuseColor = new ColorValue(1.0f, 1.0f, 1.0f, 1.0f);

OnresetDevice metodunu bulup aşağıdaki kodu yapıştırın

//ışıkları ayarla

e.Device.Lights[0].DiffuseColor = new ColorValue(1.0f, 1.0f, 1.0f, 1.0f);
e.Device.Lights[0].Direction = new Vector3(0, -1, 0);
e.Device.Lights[0].Type = LightType.Directional;
e.Device.Lights[0].Enabled = true;


son olarak da OnFrameRender metodunu bulup Beginscene kodundan sonra aşağıdaki kodu yapıştırın

device.Transform.View = camera.ViewMatrix;
device.Transform.Projection = camera.ProjectionMatrix;
device.Transform.World = Matrix.RotationX((float)appTime);
device.Material = teapotmaterial;
teapotmesh.DrawSubset(0);

ve uygulamanızı çalıştırınız

360 derece dönen bir çaydanlığınız olacak.Sağ mouse tuşuyla çaydanlığı istediğiniz yere döndürebilirsiniz.Bu örnek Mesh leri anlamanız için verilmiştir.

Ve görüntü şu şekilde oluşacaktır:

Cuma, Ocak 26, 2007

Zirve 2007 Görüntüleri

Microsoft Zirve 2007 (2.gün)

şu ana kadar gittiğim en güzel ama en güzel zirveydi.Düzenleyen Microsoft gibi dev bir şirket olunca herşey 4-4 lük olmalıydı,oldu da.Zirve yi hazırlayan Microsoft a ,çalışanlarına ve ortaklarına çok teşekkürler...

Web 2.0

Geçen gün Microsoft Seminerindeydim.arkadaşım yüksel ile Web 2.0 sunumuna katıldık.Sunucu Mehmet Nuri Çankaya olunca gel de dinleme :) Gerçekten çok başarılı bir sunumdu.10 üzerinden 10 verdim bu sunum için.Beni ve ilgili arkadaşları aydınlattığı için Mehmet Nuri Çankaya ya teşekkürler....

Perşembe, Ocak 18, 2007

Microsoft Zirve 2007

24-25-26 Ocak 2007 Tarihleri arasında Lütfi Kırdar da Microsoft Yeni Teknolojilerini tanıtacak.Özellikle Vista ve Office 2007 ye yoğun talep olacağı söyleniyor.Bakalım göreceğiz...

Bende orada olacağım bir aksilik çıkmazsa inş...

DirectX Öğreniyorum

DirectX beni çok fena sardı,artık DirectX e yoğunlaşacağım.Çok süper bişey...

DirectX 101 December 2006 SDK

DirectX 101 i bu adresten indirebilirsiniz

http://www.microsoft.com/downloads/details.aspx?FamilyID=05da7623-f2f9-4f57-91aa-6db27fb8305f&DisplayLang=en

Upload Uygulaması

Formunuza 1 upload,button,label,textbox koyun ve codebehind ı aşağıdaki şekilde yazın.

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
public partial class _Default : System.Web.UI.Page
{
protected void Button1_Click(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
sb.Append("Yüklenen dosya ile ilgili bilgi" + ":

");
sb.Append("Adı : " + FileUpload1.PostedFile.FileName + "
");
sb.Append("Tipi : " + FileUpload1.PostedFile.ContentType + "
");
sb.Append("Boyutu : " + FileUpload1.PostedFile.ContentLength.ToString() + "
");
Response.Write(sb.ToString());
if (FileUpload1.PostedFile.ContentType == "application/octet-stream")
{
FileUpload1.PostedFile.SaveAs(Server.MapPath(".") + "\\" + TextBox1.Text);
}
else
{
Response.Write("Belirtilen Dosya Tipi desteklenmiyor");
}
}
}

Böylece Sadece rar-zip uzantılı dosyalar upload edilebilecek