32 bit (x86) yapılan programların 64 bit (x64) çalıştırılması
Tarih
26/11/2013 10:21
Konu Sahibi
mesutyagmur
Yorumlar
10
Okunma
5499
Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 5
  • 4
  • 3
  • 2
  • 1

Derecelendirme: 0/5 - 0 oy



mesutyagmur
Mesut
Kullanici Avatari
Aktivasyon Bekleyen
M.... Y....
41
24/10/2011
Adana
-
27/03/2014,13:09
Çözüldü 
Sponsor Reklam
Merhaba Arkadaşlar

32 bit te yaptığım bir çalışmayı 64bit te çalıştıramadım. Ne yapmam gerekiyor?
Cevapla

mehmetdemiral
.
Kullanici Avatari
Uzman
M.... D....
4.750
30/10/2008
Samsun
Ofis 2013 Tr. 32 Bit
13/02/2017,02:22
Çözüldü 
Modüllerdeki api declaration satırlarında PTRSAFE deyimini kullanmalısınız. Hem 32 hem de 64 bit'te çalışması için mesela aşağıdaki biçimde olan kodları

Visual Basic Code
Private Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long


şu şekilde değiştirin:

Visual Basic Code
#If VBA7 Then
    Private Declare PtrSafe Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
#Else
     Private Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
#End If

Böylece 32 bit için de 64 bit içinm de sorun ortadan kalkar.

Bunu eklemeniz gerektiğini nereden mi anlayacaksınız?
Modüllerde "private declare" ile başlayan kodlarda api kullanıldığı için 64 bit için sorun çıkar. Çünkü iki işletim sisteminde kullanılan api mantığı farklıdır. 32 bitlik işletim sisteminde kullanılan kodları yukarda verdiğim biçime dönüştürdüğünüzde her iki sistemde de sorunsuz çalışacaktır.

Bir uyarı: Eğer modülde Declare Function biçimi başında "private" olmadan kullanıldıysa o zaman da yine ptrsafe deyimini declare komutundan hemen sonra kullanmalısınız. Bir örnek vereyim:

kodumuz şöyle olsun

Visual Basic Code
Declare Function LoadCursorBynum Lib "user32" Alias "LoadCursorA" _
  (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long

Bu durumda ptrsafe nereye gelecek? Private declare'de hemen declare'den sonra kullanmıştık. Burada da aynı şekilde

Visual Basic Code
1
2
3
4
5
6
7
#If VBA7 Then
    Declare PtrSafe Function LoadCursorBynum Lib "user32" Alias "LoadCursorA" _
  (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
#Else
    Declare Function LoadCursorBynum Lib "user32" Alias "LoadCursorA" _
  (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
#End If


Sonuçta her iki kullanımda da unutmamamanız gereken şey ptrsafe'yi declare sözcüğünden sonra kullanmak.

İnadına, ille de Accesstr.net...
Cevapla

yorum70

Kullanici Avatari
Özel Üye
A.... Ş....
1.187
08/10/2010
71
Ankara
Ofis 2013 64 Bit
22/10/2016,21:00
Çözüldü 
Sponsor Reklam
olay budur yani, bu sra 64 bit sorunu cok karsima cikiyor, bu ornekte mukemmel anlatilmis.tsk,
"Her tercih, bir vazgeçiştir"

Cevapla

mehmetdemiral
.
Kullanici Avatari
Uzman
M.... D....
4.750
30/10/2008
Samsun
Ofis 2013 Tr. 32 Bit
13/02/2017,02:22
Şimdi farkettim de 26-11-2013, 10:21'de sorulan bir soruya tam çözüm olarak 26-11-2013, 11:18'de yanıt veriyorum, vatandaş geri dönüp yanıt yazma zahmetinde bile bulunmuyor. Bu arkadaştan lütfen bu sorunun cevabı olarak taahhüt ettiği bedeli tahsil edelim Img-grin

Microsoft'a avuç dolusu dolar verip aldığımız(!) ofis 2013 için hata bildirimi yapıyoruz adamlarda pire uçuşuyor. Bir microsoftçu bu yazıyı görür de inşallah yazar buralara. Mübarek ayda duamız kabul olur inşallah Img-grin Microsoft-ül Deccal Img-grin
İnadına, ille de Accesstr.net...
Cevapla

malt
Üye
Kullanici Avatari
Üye
M.... A....
3
0
18/03/2014
0
Isparta
20/02/2015,15:47
Sponsor Reklam
Teşekkür ederim, ben de yararlandım ve sorunumu çözdüm.
Cevapla

mehmetdemiral
.
Kullanici Avatari
Uzman
M.... D....
4.750
30/10/2008
Samsun
Ofis 2013 Tr. 32 Bit
13/02/2017,02:22
Bir de Mesut Yağmur yazaydı Img-grin
İnadına, ille de Accesstr.net...
Cevapla


Konuyu Okuyanlar: 1 Ziyaretçi


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Tarih Son Yorum
  Formda Veri girişi yapılan bir alanın raporda gözükmemesi murat dikme 2 38 15/02/2017, 06:10 murat dikme
  Yapılan işi stoktan düşürme hakkında Gezente Çift 2 171 31/12/2016, 13:36 Gezente Çift
Çözüldü alt formda yapılan toplamları üst formdaki alanlara yazdırma mehmetb84 2 442 08/04/2016, 11:01 mehmetb84
Çözüldü Access de yapılan bir programı farkı programlar aracılığı ile exe derleme emre_0147 14 1.292 17/01/2016, 22:48 emre_0147
Çözüldü Access 2010 İle Accde Yapılan Uygulama Başka Pc'de 2010 Yüklü Neden Çalışmaz?? mehami 10 1.017 30/11/2015, 01:50 mehami


Türkçe Çeviri: MCTR, Yazılım: MyBB, © 2002-2017 MyBB Group.
DMCA.com Protection Status
© Desing by XSTYLED| Develops by ozanakkaya