64 bit olarak yeniden derlemek
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
64 bit olarak yeniden derlemek
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.
Ü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.
Re: 64 bit olarak yeniden derlemek
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
http://www.embarcadero.com/products/delphi/64-bit
Re: 64 bit olarak yeniden derlemek
Merhabalar ,
64 bit derleme XE 2 sürümüyle birlikte geldi bilginize..
64 bit derleme XE 2 sürümüyle birlikte geldi bilginize..
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Re: 64 bit olarak yeniden derlemek
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.
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.
Re: 64 bit olarak yeniden derlemek
64 bit desteği sadece delphi için var c++ için XE3 de gelecekmiş.
Re: 64 bit olarak yeniden derlemek
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?
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?
Re: 64 bit olarak yeniden derlemek
Yukarıda yazdığım sorunu kimse yaşamadı mı acaba? Yardım bekliyorum
Re: 64 bit olarak yeniden derlemek
C# da yazdığım projeleri 32bite özel derleyip 64bitte sorunsuz olarak çalıştırabiliyorum. Delphide hiç denemedim ama benzer şekilde olması gerekir.
Re: 64 bit olarak yeniden derlemek
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.
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.
Re: 64 bit olarak yeniden derlemek
UAC için manifest dosyası oluşturman gerekiyor. Şöyle bir yapısı var
Ayrıntılı bilgi için:
http://edn.embarcadero.com/article/33942
http://ruminatedrumblings.blogspot.com/ ... ifest.html
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>
http://edn.embarcadero.com/article/33942
http://ruminatedrumblings.blogspot.com/ ... ifest.html
Re: 64 bit olarak yeniden derlemek
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, 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.
Re: 64 bit olarak yeniden derlemek
@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.