الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ممكن اعرف كيف استخدم الدالة دى؟

مغلق
بدأه hamada hassan ali في 24 نوفمبر 2005 · 5 رد · 680 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

انا عاوز اعرف ايه استخدمات الدالة دى وازى استخدمها

FARPROC GetProcAddress(

    HMODULE hModule,	// handle to DLL module  
    LPCSTR lpProcName  // name of function 
   );	


Parameters

hModule

Identifies the DLL module that contains the function. The LoadLibrary or GetModuleHandle function returns this handle. 

lpProcName

Points to a null-terminated string containing the function name, or specifies the function's ordinal value. If this parameter is an ordinal value, it must be in the low-order word; the high-order word must be zero. 



Return Values

If the function succeeds, the return value is the address of the DLL's exported function.
If the function fails, the return value is NULL. To get extended error information, call GetLastError.

_____________________________

C Language && Windwos_API

_____________________________

#2

بإختصار:

لديك hamada.dll بها داله hassan

تريد برمجيا إستخدام الداله hassan

تستخدم الداله LoadLibrary لتحميل ملفك للذاكرة

و تستخدم الدالة GetProcAddress للحصول على موقع hassan بالذاكرة

ثم تفعل ما تريد....

d4baa0.gif
#3

طيب فى الاسمبلى مع دوال النظام

ادا كتبت الدالة WINMAIN فى الاسمبلى اكيد لها بارميترات كيف استدعيهم بالاسمبلى

وياريت خدمة صغيرة

اسماء كل ملفات DLL الخاصة بمكتبة API

تم تعديل هذه المشاركة بواسطة hamada hassan ali في 24 نوفمبر 2005 في 14:27

_____________________________

C Language && Windwos_API

_____________________________

#4
اقتباس
طيب فى الاسمبلى مع دوال النظام

ادا كتبت الدالة WINMAIN فى الاسمبلى اكيد لها بارميترات كيف استدعيهم بالاسمبلى

لماذا لا تبحث عن كتاب في الاسمبلي وستجد شرحاً عن ذلك . أظن أن بامكانك الحصول على معلومات في قسم الاسمبلي أيضاً .. مثل هذا الشئ يعتبر أساسي في البرمجة باستخدام الاسمبلي ويجب أن تقرأ كتاب عنها اولا ...

اقتباس
اسماء كل ملفات DLL الخاصة بمكتبة API

"مكتبة API " هذا لفظ خاطئ

تريد أسماء كل ملفات DLL التي تاتي مع النظام ؟؟

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#5

هو عايزك تكتب له هنا فى المنتدى كل ما يحتويه موقع www.msdn.com..

انا عندى إقتراح يا حماده افتح الموقع دا وحتلاقى فيه جميع مكتبات الDLL وفى بعض الاحيان شرح مفصل معى امثله لكل دالة, بدل ما تتعب الراجل وتخليه يكتب كل مكتبات الوندوز هنا..

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#6

يا جماعة حد يعطينى مثال ازى استخدم الدالة دى انا مش عارف هى مش بتشتغل معايا ليه المهم ان مفيش اخطاء والكود شغال

المهم انا عاوز اعرف ENTRY-point لاى دالة من دوال API مادا افعل هل الدالة دىفيها خطاء ولا ايه

على العموم هدا هو الكود اللى محيرنى فى استخدام الدالة GETPROCADRESS && LOADLIBRARY

#include <windows.h>

/*  Declare Windows procedure  */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

/*  Make the class name into a global variable  */
char szClassName[ ] = "WindowsApp";
int x=0;
int WINAPI WinMain (HINSTANCE hThisInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpszArgument,
                    int nFunsterStil)

{
    HWND hwnd;               /* This is the handle for our window */
    MSG messages;            /* Here messages to the application are saved */
    WNDCLASSEX wincl;        /* Data structure for the windowclass */

    /* The Window structure */
    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
    wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
    wincl.cbSize = sizeof (WNDCLASSEX);

    /* Use default icon and mouse-pointer */
    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;                 /* No menu */
    wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
    wincl.cbWndExtra = 0;                      /* structure or the window instance */
    /* Use Windows's default color as the background of the window */
    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

    /* Register the window class, and if it fails quit the program */
    if (!RegisterClassEx (&wincl))
        return 0;
LoadLibrary("user32.DLL");
x=GetProcAddress("user32.DLL",EnableWindow);
    /* The class is registered, let's create the program*/
    hwnd = CreateWindowEx (
           0,                   /* Extended possibilites for variation */
           szClassName,         /* Classname */
           x,       /* Title Text */
           WS_OVERLAPPEDWINDOW, /* default window */
           CW_USEDEFAULT,       /* Windows decides the position */
           CW_USEDEFAULT,       /* where the window ends up on the screen */
           544,                 /* The programs width */
           375,                 /* and height in pixels */
           HWND_DESKTOP,        /* The window is a child-window to desktop */
           NULL,                /* No menu */
           hThisInstance,       /* Program Instance handler */
           NULL                 /* No Window Creation data */
           );

    /* Make the window visible on the screen */
    ShowWindow (hwnd, nFunsterStil);

    /* Run the message loop. It will run until GetMessage() returns 0 */
    while (GetMessage (&messages, NULL, 0, 0))
    {
        /* Translate virtual-key messages into character messages */
        TranslateMessage(&messages);
        /* Send message to WindowProcedure */
        DispatchMessage(&messages);
    }

    /* The program return-value is 0 - The value that PostQuitMessage() gave */
    return messages.wParam;
}


/*  This function is called by the Windows function DispatchMessage()  */

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)                  /* handle the messages */
    {
        case WM_DESTROY:
            PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
            break;
        default:                      /* for messages that we don't deal with */
            return DefWindowProc (hwnd, message, wParam, lParam);
    }

    return 0;
}

_____________________________

C Language && Windwos_API

_____________________________

هذا الموضوع مغلق.

مواضيع مشابهة