API فۇنكىسيەلىرىنى ئۆز ئىچىگە ئالغان VBA نىڭ 64 بىتلىق سىستېمىدىكى سىغىشماسلىق مەسىلىسىنى ھەل قىلىش
بىر چاغلاردا VBA بىلەن ھەپىلىشىپ يۈرگەن ۋاقىتلاردا API فۇنكىسيەلىرىنى ئۆز ئىچىگە ئالغان VBA نىڭ 64 بىتلىق مەشغۇلات سىستېمىسىدا خاتالىق كۆرۈلىدىغانلىقىنى بايقىغان ئىدىم، دەل مۇشۇ سەۋەبتىن نۇرغۇن ياخشى VBA پىروگراممىلىرىنى 64 بىتلىق مەشغۇلات سىستېمىسىغا ماسلاشتۇرالماي تاشلىنىپ قالغان ئىدى. بۇنداق مەسىلىگە باشقىلارمۇ ئۇچرىغان بولۇشى مۇمكىن.بۇ مەسىلىمۇ مېنى ئىزچىل قىيناپ كەلگەن ئىدى.شۇ چاغلاردا خەنزۇچە مەنبەلەردىن تۈزۈك ئۇچۇرلار تاپالماي، تاپالىغان بولساممۇ ئىشلىتەلمەي كەلگەن ئىدىم. ئۆتكەندە مەكتەپ كۈتۈپخانىسىدىن بىر كىتابنى ئارىيەت ئېلىپ كىرىپ مۇشۇ ھەقتىكى مەزمۇنغا مۇنداقلا قاراپ قويۇپ ئۆتۈپ كەتكەن ئىدىم،مەن ئۇچرىغان مەسىلە دەل شۇ كىتابتا مەن ھەل قىلىنغان مەسلە شۇ ئىكەنتۇق.بۈگۈن تۇيۇقسىز بۇنى ھەل قىلىش چارىسىنى تېپىۋالدىم ھەم بۇ يەردە ئورتاقلىششنى لايىق كۆردۈم.ھەل قىلىش چارىسىنى ئىشلىتىش ئۇسۇلى ئادديلا بولۇپ شۇ بويىچە 64 بىتلىق سىستېمىدا ئىشلەتسەڭلار بولىدۇ. ئاددىي بولسۇن ئۈچۈن بىرلا API فۇنكىسيەسىنى مىسالغا ئالىمەن.
- #If VBA7 Then
- 'كۆزنەك ھالىتى
- Private Declare PtrSafe Function FindWindow Lib "user32" Alias _
- "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
- Private Declare PtrSafe Function SetWindowLong Lib "user32" Alias _
- "SetWindowLongA" (ByVal Hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
- #Else
- 'كۆزنەك ھالىتى
- Private Declare Function FindWindow Lib "user32" Alias _
- "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
- Private Declare Function SetWindowLong Lib "user32" Alias _
- "SetWindowLongA" (ByVal Hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
- #End If
مەزمۇننى كۆچۈرۈۋېلىش
ئەسكەرتىش:64 بىتلىق سىستېمىدا API فۇنكىسيەلىرىگە PtrSafe ھالقىلىق سۆزىنى قوشۇش كېرەك.
تورداشلارنىڭ باشقا API لارنى مۇشۇ ئەندىزىدە ئىشلىتىپ ھەل بولغان بولمىغانلىقىنى قالدۇرۇپ قويىشىنى سورايمەن.MS Office نىڭ قايسى نەشىرى بولسۇن مەشغۇلات سىستېمىسى 64 بىتلىقلا بولسا مېنىڭچە نورمال ئىشلەيدۇ. |