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

برنامج ولا اروع .. لكن بعد مساعدتكم

مغلق
بدأه cs boy في 13 مايو 2003 · 8 رد · 756 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم :)

اخواني وخواتي اعضاء المنتدى

ممكن احد يقول لي شلون نقدر نسوي call حق فنكشن موجودة في احد فايلات ال dll مباشرة

مثلا : SetLayeredWindowAttributes

هذي الفنكشن مو معرفة في برامج لغات البرمجة

المفروض نسوي لها call مباشر من ملف ال dll اللي هو user32.dll

وإن شاء الله اوعدكم ببرنامج حلو يعجبكم :)

#2

السلام عليكم

عليك الرجوع الى msdn help باعتباره المرجع الاول ( الداله من النوع المصرح به ).

اعتقد ان مشرف القسم الاخ هاني الاتاسي شرح استعمال الداله من قبل .

اتذكر ايضا ان الاخ محمد نسمان شرح استعمالها في قسم الدلفي .

ملحوظه : يمكن استعمال الداله فقط في نظام win2000 او نظام اعلى .

هذا مثال بسيط على استعمالها

ضع الكود في OnInitDialog()

	SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,

	GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000);

	HINSTANCE hInst = LoadLibrary("User32.DLL"); 

	if(hInst) 

	{ 

   typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD); 

   MYFUNC fun = NULL; 

   fun=(MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes");

   if(fun)

    fun(this->GetSafeHwnd(),0,200,2); 

   FreeLibrary(hInst); 

	}

اذا كان لديك اخر اصدار من windows SDK ستجد تعريف التابع .

هذا مثال اخر :

http://www.codeproject.com/win32/Quaker1.asp

اذا بحثت في google ستجد الكثير من المعلومات ...

حظ موفق ...

#3

تسلم أخوي kernel80

انا سويت اللي قلت لي عليه .. بس في شي مخلي السالفة توقف

دائما ال address حق اي فنكشن يعطيني اياه NULL 0x0000000 ليش ؟؟

مع اني جربت اكثر من مرة .. وهذي المشكلة مو بس معاي تصير :(

#4

السلام عليكم

ما هو اصدار الويندوز الذي تستعمله ؟

عندما تستخدم GetProcAddress مع دوال اخرى هل تكون القيمه الناتجه NULL ؟

#5

النسخة اللي استخدمها ويندوز xp

ومع كل الدوال يطلع لي NULL

#6

السلام عليكم

لم اصادف مثل هذه المشكله من قبل .

اكتب مثال استخدمته و صادفت المشكله السابقه.

راجع هنا

http://groups.google.com/groups?hl=en&lr=&...always+get+null

#7

سلام اخوي kernel80

معظم المواضيع كانت تتكلم عن نفس الايرور اللي يطلع عندي

بس للأسف لم احصل على الجواب

:(

#8

سلام

أخوي عرفت السبب بس ما ادري شنو الحل

السبب في loadlibrary

مو في GetProcAddress

لان القيمة اللي ترجعها loadlibrary هي 21

وهذا معناته ايرور

والايرور اهو

Applications requires microsoft windows 32-bit extensions

بس شنو الحل ؟؟

#9

سلام أخوي

انا استخدم borland c++ 4.5

وهذا على ما اظن 16bit

وهني المشكلة تصير

شلون نقدر نستخدم dll32 في برنامج 16bit

فهل عندك فكرة عن الموضوع ؟

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

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