64 bit sorunu

1 2
23/02/2016, 11:43

fkilic76

kendi pc mde yaptığım proje 64 bit  sistemli pc de açmadı.
aşağıdaki modülü hata  olarak gösterdi

Option Compare Database


Option Explicit

Public Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, _
    ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Public Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, _
    ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, _
    ByVal Y3 As Long) As Long
Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, _
    ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, _
    ByVal nCombineMode As Long) As Long
Public Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, _
    ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Public Const RGN_AND = 1
Public Const RGN_COPY = 5
Public Const RGN_DIFF = 4
Public Const RGN_OR = 2
Public Const RGN_XOR = 3

Public Function degistir()
Dim rgn1 As Long, rgn2 As Long
  
   rgn1 = CreateRectRgn(0, 0, 1, 1)
   CombineRgn rgn1, rgn1, rgn2, RGN_OR
   SetWindowRgn Application.hWndAccessApp, rgn1, True
End Function
Public Function degistir2()
Dim rgn1 As Long, rgn2 As Long
  
   rgn1 = CreateRectRgn(0, 0, 1500, 1500)
   CombineRgn rgn1, rgn1, rgn2, RGN_OR
   SetWindowRgn Application.hWndAccessApp, rgn1, True
End Function
23/02/2016, 14:21

atoz112

sayın fkilic76,

bahsettiğiniz talebinize yönelik olarak;aşağıdaki açıklamanın yapılması uygun görülmüştür.

32 bit / 64 bit sorunlarına dair fonksiyon kullanımlarında herhangi bir çakışma veya benzeri hataların olmaması için,
PTRSAFE ifadesinin,fonksiyonların declare edilmesi işlemlerinde yazılması gerekmektedir.

kodlarınızı aşağıdaki kodlar ile değiştiriniz.

Kod:
#If VBA7 Then

Public Declare PtrSafe Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, _
    ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Public Declare PtrSafe Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, _
    ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, _
    ByVal Y3 As Long) As Long
Public Declare PtrSafe Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, _
    ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, _
    ByVal nCombineMode As Long) As Long
Public Declare PtrSafe Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, _
    ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long

#Else

     Public Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, _
    ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Public Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, _
    ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, _
    ByVal Y3 As Long) As Long
Public Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, _
    ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, _
    ByVal nCombineMode As Long) As Long
Public Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, _
    ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long


#End If


Public Const RGN_AND = 1
Public Const RGN_COPY = 5
Public Const RGN_DIFF = 4
Public Const RGN_OR = 2
Public Const RGN_XOR = 3


Public Function degistir()
Dim rgn1 As Long, rgn2 As Long
  
   rgn1 = CreateRectRgn(0, 0, 1, 1)
   CombineRgn rgn1, rgn1, rgn2, RGN_OR
   SetWindowRgn Application.hWndAccessApp, rgn1, True
End Function
Public Function degistir2()
Dim rgn1 As Long, rgn2 As Long
  
   rgn1 = CreateRectRgn(0, 0, 1500, 1500)
   CombineRgn rgn1, rgn1, rgn2, RGN_OR
   SetWindowRgn Application.hWndAccessApp, rgn1, True
End Function

son olarak;
site arama sayfasında,"ptrsafe",(çift tırnaklar içerisinde olmak üzere) "32 bit","64 bit" ya da "#If VBA7 Then" ifadesini yazmak sureti ile çeşitli konularda yer alan bilgileri ve örnekleri inceleyiniz.

bilginize...iyi çalışmalar,saygılar.
23/02/2016, 17:04

fkilic76

(23/02/2016, 14:21)atoz112 yazdı: sayın fkilic76,

bahsettiğiniz talebinize yönelik olarak;aşağıdaki açıklamanın yapılması uygun görülmüştür.

32 bit / 64 bit sorunlarına dair fonksiyon kullanımlarında herhangi bir çakışma veya benzeri hataların olmaması için,
PTRSAFE ifadesinin,fonksiyonların declare edilmesi işlemlerinde yazılması gerekmektedir.

kodlarınızı aşağıdaki kodlar ile değiştiriniz.


Kod:
#If VBA7 Then

Public Declare PtrSafe Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, _
    ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Public Declare PtrSafe Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, _
    ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, _
    ByVal Y3 As Long) As Long
Public Declare PtrSafe Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, _
    ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, _
    ByVal nCombineMode As Long) As Long
Public Declare PtrSafe Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, _
    ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long

#Else

     Public Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, _
    ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Public Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, _
    ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, _
    ByVal Y3 As Long) As Long
Public Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, _
    ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, _
    ByVal nCombineMode As Long) As Long
Public Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, _
    ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long


#End If


Public Const RGN_AND = 1
Public Const RGN_COPY = 5
Public Const RGN_DIFF = 4
Public Const RGN_OR = 2
Public Const RGN_XOR = 3


Public Function degistir()
Dim rgn1 As Long, rgn2 As Long
  
   rgn1 = CreateRectRgn(0, 0, 1, 1)
   CombineRgn rgn1, rgn1, rgn2, RGN_OR
   SetWindowRgn Application.hWndAccessApp, rgn1, True
End Function
Public Function degistir2()
Dim rgn1 As Long, rgn2 As Long
  
   rgn1 = CreateRectRgn(0, 0, 1500, 1500)
   CombineRgn rgn1, rgn1, rgn2, RGN_OR
   SetWindowRgn Application.hWndAccessApp, rgn1, True
End Function

son olarak;
site arama sayfasında,"ptrsafe",(çift tırnaklar içerisinde olmak üzere) "32 bit","64 bit" ya da "#If VBA7 Then" ifadesini yazmak sureti ile çeşitli konularda yer alan bilgileri ve örnekleri inceleyiniz.

bilginize...iyi çalışmalar,saygılar.

Öncelikle İlginize teşekkürler.
vermiş olduğunuz kodları eskisiyle değiştirdim.bende  çalıştı ama diğer(64bit)pc de yine  çalışmadı. ilgili pc deki ofis" lisans-ürün anahtarı girin"gibi uyarı veriyor onunla alakalı olabilir mi. sorun kodda değilse.
23/02/2016, 19:25

atoz112

sayın fkilic76,

Alıntı:...pc deki ofis" lisans-ürün anahtarı girin"gibi uyarı veriyor...

ifadenize yönelik olarak;
ilgili ofis sürümünüzün geçici olması durumu söz konusu.

tam kurulum sağlayabilecek şekilde olan sürümünü tedarik etmelisiniz.

bilginize...iyi çalışmalar,saygılar.
24/02/2016, 20:33

ozanakkaya

(23/02/2016, 17:04)fkilic76 yazdı: ilgili pc deki ofis" lisans-ürün anahtarı girin"gibi uyarı veriyor


Uyarının resmini gönderebilir misiniz?
25/02/2016, 10:51

fkilic76

(24/02/2016, 20:33)ozanakkaya yazdı:
(23/02/2016, 17:04)fkilic76 yazdı: ilgili pc deki ofis" lisans-ürün anahtarı girin"gibi uyarı veriyor


Uyarının resmini gönderebilir misiniz?


1 2