64 bit olarak yeniden derlemek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
SHURZAN
Üye
Mesajlar: 73
Kayıt: 06 Eki 2007 05:34
Konum: İstanbul

64 bit olarak yeniden derlemek

Mesaj gönderen SHURZAN »

Merhaba arkadaşlar,
Üzerinde çalıştığım proje BDS 2006 üzerinde hazırlanmış ben bunu Rad Studio 2011 XE ortamında yeniden düzenledim, gerekli bileşenleri buldum ve proje sorunsuz derleniyor. Fakat projenin 64 bit işletim sisteminde de 64 bit uygulama olarak çalıştırılması gerekiyor. Projemi nasıl 64 bit olarak derleyebilirim, herhangi bir düzenleme ya da ayarı varsa nerden yapılır?

Yardımlarınız için şimdiden teşekkürler.
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Re: 64 bit olarak yeniden derlemek

Mesaj gönderen m_ekici »

Sağ taraftaki ekranda Target platform var. oraya 64 bit ekliyor ve aktifleştiriyorsun. Bende henüz denemedim ama aşağıdaki demo da nasıl derleneceğini anlatıyor.

http://www.embarcadero.com/products/delphi/64-bit
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: 64 bit olarak yeniden derlemek

Mesaj gönderen vkamadan »

Merhabalar ,
64 bit derleme XE 2 sürümüyle birlikte geldi bilginize..
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
SHURZAN
Üye
Mesajlar: 73
Kayıt: 06 Eki 2007 05:34
Konum: İstanbul

Re: 64 bit olarak yeniden derlemek

Mesaj gönderen SHURZAN »

vkamadan ve m_ekici ilginize teşekkürler, Bunları bende düşündüm.
XE2 sürümünü kurdum fakat XE2'de 64 bit desteğini C++ için vermemiş
Benim projem C++ projesi.
Başka yolu yok mu? Mesela proje ayarlarında vs.
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: 64 bit olarak yeniden derlemek

Mesaj gönderen orhancc »

64 bit desteği sadece delphi için var c++ için XE3 de gelecekmiş.
Kullanıcı avatarı
SHURZAN
Üye
Mesajlar: 73
Kayıt: 06 Eki 2007 05:34
Konum: İstanbul

Re: 64 bit olarak yeniden derlemek

Mesaj gönderen SHURZAN »

Bu durumda sorunu aşmanın başka yolu olmayacak sanırım!

64 bit işletim sisteminde 32 bit uygulama geliştirdiğimizde bazı sorunlar ile karşılabilmekteyim sanırım sizde benzer sorunlar ile karşılaşmışsınızdır. Acaba aşağıda ki gibi sorunu aşabilen varmı?

uygulamamın bir kaç yerinde ExpandEnvironmentStringsW fonksiyonunu kullanıyorum, bu fonksiyon "%ProgramFiles%" gibi stringi "C:\Program Files" olarak verir. Ancak win7 x64 işletim sisteminde iki tane Program Files var uygulaman 32 bit ise "C:\Program Files (x86)" olarak 64 bit ise "C:\Program Files" olarak veriyor.

Eğer bir path kullanıp işlem yapacaksan ve uygulaman 32 ise erişim hatası veriyor, yolu "C:\Program Files (x86)" içinde arıyor. benzer bir kaç sorunu da yaşamaktayım kısayol erişim sorunu gibi.

Uygulamamı 64 bit olarak derleyemiyorsam bu gibi sorunları nasıl aşarım?
Kullanıcı avatarı
SHURZAN
Üye
Mesajlar: 73
Kayıt: 06 Eki 2007 05:34
Konum: İstanbul

Re: 64 bit olarak yeniden derlemek

Mesaj gönderen SHURZAN »

Yukarıda yazdığım sorunu kimse yaşamadı mı acaba? Yardım bekliyorum
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: 64 bit olarak yeniden derlemek

Mesaj gönderen orhancc »

C# da yazdığım projeleri 32bite özel derleyip 64bitte sorunsuz olarak çalıştırabiliyorum. Delphide hiç denemedim ama benzer şekilde olması gerekir.
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: 64 bit olarak yeniden derlemek

Mesaj gönderen mkysoft »

cep telefonumdan uzun uzun yazmıştım, nasıl olduysa gelmemiş cevabım.

Bahsettiğiniz sorun 64bit sorunu değil. Microsoft, Vista ile birlikte bazı ilkeleri değiştirdi. Program Files klasörüne dosya yazmak için admin yetkinizde olması lazım. Eğer ayar yada data kaydedecekseniz programdata yada local settings klasörlerini kullanın. Bilgisayarların UAC'larını devre dışı bırakırsanız admin yetkisine de gerek kalmaz. Programınıza Program Files gibi windows değişkenlerini sabit olarak gömmeyin. Farklı dildeki işletim sistemindede bunlar zaten değişebiliyor. Windows sadece otomatik olarak 64bit uygulamaları x64 klasörüne yüklüyor.
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: 64 bit olarak yeniden derlemek

Mesaj gönderen orhancc »

UAC için manifest dosyası oluşturman gerekiyor. Şöyle bir yapısı var

Kod: Tümünü seç

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0]
  <assemblyIdentity version="1.1.1.1"
   processorArchitecture="X86"
   name="YourApplicationExeName"
   type="win32"/>
  <description>elevate execution level</description>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2]
  <security>
   <requestedPrivileges>
    <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
   </requestedPrivileges>
  </security>
  </trustInfo>
 </assembly>
Ayrıntılı bilgi için:
http://edn.embarcadero.com/article/33942
http://ruminatedrumblings.blogspot.com/ ... ifest.html
Kullanıcı avatarı
SHURZAN
Üye
Mesajlar: 73
Kayıt: 06 Eki 2007 05:34
Konum: İstanbul

Re: 64 bit olarak yeniden derlemek

Mesaj gönderen SHURZAN »

orhancc, program 64 bir işletim sisteminde hem derleniyor hemde çalışabilmekte, ayrıca o menifestonun benzeri projeme ekli.
mkysoft, bahsini ettiğim sorun sizin belirttiğiniz konuyla ilgisi yok uygulamamın admin yetkisi zaten var.

Benim sorunum farklı projem c++ projesi ve xe2'de de henüz 64 bit olarak derliyemiyorum. 32 bit uygulam elbette 64 bit işletim sisteminde simüle edilerek çalışabilmekte ancak 32 bit uygulamada Window API kullanıldığında bir çok soru oluşabilmekte örneğin Registryde wow6432node alınana müdahale edebiliyorsunuz. Bunu aştım Reg-Access = KEY_WOW64_64KEY; erişim değeri vererek registryde gereken düzenlemeleri yapabilmekteyim.

Ancak 32 bit uygulamam .lnk dosyalarını test ettiğinde hedef dosya yolu "%ProgramFiles%/Adobe Photoshop CS5 (64 Bit)\Photoshop.exe" olan adresi şöyle vermekte; "C:\Program Files (x86)\Adobe\Adobe Photoshop CS5 (64 Bit)\Photoshop.exe" olarak vermektedir çünkü "%ProgramFiles%" stringi 32 bit uygulamada "C:\Program Files (x86)" 64 bit olanda ise "C:\Program Files" vermekte sizde deneyin.
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: 64 bit olarak yeniden derlemek

Mesaj gönderen mkysoft »

@shurzan yazdıklarınız doğrudur, deneme gereği duymadım. Microsoft'un aldığı kararlardan dolayı bana normal geldi bu durum. Normalde bir program eğer sistem araçları gibi özel birşey değilse, bu yapıların (x86 ve x64) ikisine birden erişme ihtiyacı duymamanız gerekir. Eğer iki yapiyada erişmeniz gerekiyorsa, sadece bu işlemleri yapan x64 bir dll hazırlayabilirsiniz. x64 derleyebilen bir delphi yada ücretsiz bir c++ derleyicisi, hatta ücretsiz microsoft developer studio express edition bile kullanabilirsiniz.
Cevapla