PDA

View Full Version : سوال: اجرای ماژول در win 64 bit



babak_1a
سه شنبه 08 مهر 1393, 12:47 عصر
سلام و عرض خسته نباشید به دوستان برنامه نویس. من به یه مشکل برخوردم. این دو تا ماژول پیوست، در ویندوزxp خوب کار می کرد. ولی در ویندوز سون 64 بیتی در سه تا خط قرمز میشه و error میده. سه تا خط رو زیر نوشتم. لطفاً بهم کمک کنید. ممنون
در ماژول bas_api_AccessWindow:
Private Declare Function apiShowWindow Lib "user32" _
Alias "ShowWindow" (ByVal hWnd As Long, _
ByVal nCmdShow As Long) As Long



در ماژول Module1:
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetDlgItem Lib "user32" (ByVal hDlg As Long, ByVal nIDDlgItem As Long) As Long

babak_1a
سه شنبه 08 مهر 1393, 18:41 عصر
دوستان خواهشاً به دادم برسید. خیلی عجله دارم

byazdaani
پنج شنبه 10 مهر 1393, 13:22 عصر
سلام. در جای دیگه من به سئوال شما پاسخ دادم.(مشکل اکسس در ویندوز 64 بیتی یا امسس 2013).از اکسس 2010 به بعد افیس نسخه 64 بیتی هم داده و نسخه vba رو ارتقا داده و از vb7 استفاده میکنه و طبیعیه که در کامپایل کردن مشکل داشته باشین.در سیستم های 64 بیتی نحوه استفاده از توابع api تغیر کرده و باید مشروط استفاده بشن.مثلا:

#If Win64 Then
Declare PtrSafe Function FunctionName Lib "User32" (ByVal N As LongLong) As LongLong
#else
Delcare Function FunctionName Lib "User32" (ByVal N As Long) As Long
#End If

#If VBA7 Then
Declare PtrSafe Sub FunctionName Lib `` User32˝ (ByVal N As Long)
#else
Delcare Sub FunctionName Lib `` User32˝ (ByVal N As Long)
#End If
کمی در موردش تحقیق کنید قطعا نتیجه میگیرید. باز هم اگر سئوالی بود در خدمتم.