- Katılım
- 25 May 2018
- Mesajlar
- 1,608
- En iyi yanıt
- 14
- Puanları
- 113
- Konum
- İstanbul
- Web sitesi
- excelarsivi.com
- Ad Soyad
- Murat OSMA
- Office Vers.
- Office 365 TR+EN
Eğer 64 Bit kurulumlu bir ofis uygulaması kullanıyorsanız, 32 Bit ofis versiyonlarına göre hazırlanan prosedürleriniz veya programlarınızda bu şekilde bir fonksiyon hatası alırsınız.
Bu hatanın anlamı şudur;
Derleme hatası:
Bu projedeki kod, 64 bit sistemlerde kullanılmak üzere güncellenmelidir.
Lütfen Declare ifadelerini gözden geçirin ve güncelleyin, ardından bunları PtrSafe öz niteliğiyle işaretleyin.
Bu hatayı alıyoruz çünkü; kullanılan Api fonksiyonları 32 Bit'e göre hazırlandığı için, 64 bit sürümlerle uyumsuzluk gösterecektir. Böyle bir durumda, mevcut 32 Bit Api fonksiyonlarınızı ek'te bulunan dosyadaki 64 Bit Api fonksiyonları ile değiştirmeniz gerekir.
Ek'teki dosyayı indirdikten sonra yapmanız gereken; hata veren fonksiyon adını dosyada arayıp, bulunan satırdaki fonksiyonu alarak kodlarınızdaki hata veren satır ile değiştirmek olacak.
Örnek dosya görseli:
32 Bit API kullanımına örnek;
64 Bit API kullanımına örnek;
Her iki sürümde de kodlarınız çalışsın istiyorsanız, o zaman kodlarınızın bulunduğu pencerenin en üst satırında fonksiyonları bu şekilde belirtmeniz gerekir..
Bu hatanın anlamı şudur;
Derleme hatası:
Bu projedeki kod, 64 bit sistemlerde kullanılmak üzere güncellenmelidir.
Lütfen Declare ifadelerini gözden geçirin ve güncelleyin, ardından bunları PtrSafe öz niteliğiyle işaretleyin.
Bu hatayı alıyoruz çünkü; kullanılan Api fonksiyonları 32 Bit'e göre hazırlandığı için, 64 bit sürümlerle uyumsuzluk gösterecektir. Böyle bir durumda, mevcut 32 Bit Api fonksiyonlarınızı ek'te bulunan dosyadaki 64 Bit Api fonksiyonları ile değiştirmeniz gerekir.
Ek'teki dosyayı indirdikten sonra yapmanız gereken; hata veren fonksiyon adını dosyada arayıp, bulunan satırdaki fonksiyonu alarak kodlarınızdaki hata veren satır ile değiştirmek olacak.
Örnek dosya görseli:
32 Bit API kullanımına örnek;
Declare Function GetWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
64 Bit API kullanımına örnek;
Declare PtrSafe Function GetWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As LongPtr, ByVal wCmd As Long) As LongPtr
Her iki sürümde de kodlarınız çalışsın istiyorsanız, o zaman kodlarınızın bulunduğu pencerenin en üst satırında fonksiyonları bu şekilde belirtmeniz gerekir..
Kod:
#If VBA7 Then
Private Declare PtrSafe Function GetWindow Lib "user32" (ByVal hwnd As LongPtr, ByVal wCmd As Long) As LongPtr
#Else
Private Declare Function GetWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
#End If
Ekli dosyalar
Son düzenleme: