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

مشكلة توابع APT

مغلق
بدأه C&DEL في 2 سبتمبر 2004 · 3 رد · 1,726 مشاهدة · في C++.Net
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أعجبت بشكل كبير بـ MC++ و أحببتها كثيرا مما اضطرني لهجر MFC بشكل شبه كامل لكن بما أنني جديد على MC++ فانه تواجهني بعض المشكلات الصغيرة التي لم أجد لها حل ( بصراحة لم أتعب نفسي بالبحث عن حل ) و احدى أهم هذه المشكلات هي استعمال توابع API بشكل حر في تطبيقات Windows Forms . مثال اذا أردت استعمال التابع MessageBox الخاص بتوابع API فانه يجب علي استعمال الملف الرأسي windows.h ( لست متأكدا اسم الملف الرأسي ) و هنا تحدث المشكلة أنه يحدث تعارض بين MessageBox الخاص بـ APi و MessageBox الخاص بـ .NET ..... فما الحل برأيكم ؟

توقعي أن الحل له علاقة ببيئة اللغة الجديدة .

مدونتي

http://mbnoimi.net

#2

السلام عليكم ,,

أهلين وسهلين فيك يا أبو احمد ,, وينك طولت الغيبة !!

وكيف عامل مع شعاع ,, تمام ,,

ياريتك لو قدرت تساعدنا في سيل الاسئلة البيجي كل يوم :huh:

.............................

أول شيء ياأبو أحمد ال MC++ انقرضت فعلا وأخيرا ,, لأن ال C++/CLI صدرت فعلا مع مصرف البيتا 1 ,, وألغيت كل الملاحق الخاضعة للادارة أمثال __delegate و __gc و __value وغيرها ,,

اللغة تحورت قليلا كما تعرف ,, وكما كتبت في مقالتك في منتدى موقع شعاع نت سابقا :)

............................

سؤالك هذا أضاء في رأسي علامة استفهام حمراء اللون ,, وهي أننا نستطيع استدعاء دوال ال API من الدوت نت مباشرة كما كنا نفعل مع ال Win23 Applications وال MFC ,,

الغريب في الأمر أنه توجد طريقة اسمها Platform Invok لاستحضار دوال ال API من ملفات ال DLL بشكل مباشر وقت التشغيل ,, كما كنا نفعل في برمجة ال Win32 API العادية باستخدام زوج الدوال LoadLibrary و GetProcAddress ,, فقط نستدعي في الدوت نت DLLImportAttribute,, ببارمترات وتحديد اسم الدالة المراد استدعاءها ,,

لكن لو لم نرد الارتباط الديناميكي مع الدالة ,, يمكن أن نستخدم نفس طريقة ال Win32 Applications العادية ,, كالتالي :

#include <windows.h>
#using <mscorlib.dll>
#using <system.windows.forms.dll>

using namespace System::Windows::Forms;
using namespace System;

void main()
{
MessageBox("NULL,"HGB","ERROR",MB_OK);

MessageBox::Show("HGB","ERROR");

}

وستعرض لك اثنين MessageBox ,, باستخدام ال API وال .NET ,,

هل تعرف مالذي يعنيه هذا ؟

يعني أنه ان وجدت ملفات ال Header Files مع مصرف ال VS2005 الكامل معناها أن ال C++/CLI هذه ستكون روعة لأقصى الحدود ,,

ملفات الرأس موجودة في ال VS2003 ,, وهي غير موجودة في ال Visual C++ 2005 Express ,, لكن أعزو السبب لأنهم أصلا لم يضيفو ال MFC وغيرها ,, فقط أرادو من المستخدمين أن يركزو على ال C++/CLI لاختبارها ,,

لكن غالبا ماسيتحسن الوضع مع نسخ البيتا 2 والنهائية ,,

فالننتظر ,,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#3

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

كيف الأحوال أخي هيثم آمل من الله تكون بأتم الصحة و العافية و رمضان كريم

بما أنني حاليا لا أملك بيئة تشغيل كاملة سوى VS.NET 2003 فعندي MC++ لم تمت بعد !!!! على فكرة لم أفهم قصدك من اشارة الاستفهام الحمراء (هل هي طماطم !!!! هاهاهاها) كلامك صحيح 100% بس بشكل نظري فلو جربت و قمت بوضع الكود الذي طرحته سابقا فان الراسالتين لن تظهرا بل ستظهر رسالة الـ Debug بدلا منها .... OK GUY

على فكرة ما هي قصة بريدك الخاص على hotmail أرسلت لك عدة رسائل لكن المخدم يعطيني رسالةخطأ بعدم استلام الرسالة هل Inbox عندك ممتلئ ...... أريد أن أتكلم معك كلمتين على انفراد

مدونتي

http://mbnoimi.net

#4

ياهلا باأبو أحمد ,, إن شاء الله تمام ,, وين الغيبات :)

اقتباس
فلو جربت و قمت بوضع الكود الذي طرحته سابقا فان الراسالتين لن تظهرا بل ستظهر رسالة الـ Debug بدلا منها .... OK GUY

أنا جربت الكود سابقا وعمل بشكل طبيعي !! وأظهر 2 MessageBox كما أذكر .

اقتباس
على فكرة ما هي قصة بريدك الخاص على hotmail أرسلت لك عدة رسائل لكن المخدم يعطيني رسالةخطأ بعدم استلام الرسالة هل Inbox عندك ممتلئ ...... أريد أن أتكلم معك كلمتين على انفراد

كان مليان وعاوز ينفجر وكل ماأفضيه يتملي ,, المهم حولت الرسائل الخاصة بالمنتدى على الياهو ,, وال hotmail فاضي حاليا ,, بس أحيانا بنسى أدخل عليه !!

المهم ولايهمك بس إنت رسل وحاليا فاضي ,,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

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

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