السلام عليكم ،
لدي مشكلة في التحويل من متغير local الى global
هذا ما لدي ،
.inc
.data?
hWnd HWND ?
.asm
My proc …………
invoke MessageBox , hWnd,addr pszResult,CTXT("hello"),MB_OK
invoke SetDlgItemText ,hWnd,IDC_DISPLAY,addr pszResult
DlgProc proc hWin:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
;mov eax,hWin
;mov hWnd,eax
push hWin
pop hWndعند تنفيذ البرنامج يظهر ال dialog ثم يغلق مباشرة ،
الخطأ عند التحويل من ال hWin الى المتغير hWnd
لو حذفت جملة SetDlgItemText ،
وفي جملة ال MessageBox استبدلت ال hWnd ب 0 ،
يتنفذ البرنامج بصورة اعتيادية ،
يعني ال hWnd هو به المشكلة ،
،
لا ادري كيف اعملها بالاسمبلي ،
انا نفس الشي كنت مسوي بالسي وكان ماشي تمام ،،
في دروس Iczelion's Win32 Assembly
هناك شيء مماثل
.data hInstance dd 0 .data? hHook dd ? hWnd dd ? .code DllEntry proc hInst:HINSTANCE, reason:DWORD, reserved1:DWORD .if reason==DLL_PROCESS_ATTACH push hInst pop hInstance
