01.11.2017 Call Native Function Over .NET


  • الـلـهـم انـصـر اخـوانـنـا الـمـسـلـمـيـن فـي بـورمـا وكـن مـعـهـم يـاربـاه يـاربـاه

BasharBachir

اللهم اغفر له وارحمه
طاقم الإدارة
28 أكتوبر 2018
2,868
3,983
1
حياكم الله ياشباب
رايت بمنتدى الماني موضوع بيتحدثو فيه عن استخدام الناتيف في الدوت نت
ومن خلال الردود المفيدة جدا استخرجت لكم الطريقة التالية
يعني ماجبت شي من عندي
عندك مثلا فانكشن ما بالناتيف سواءا اكان سي++ او سي .الخ
وتريد تنفذه بالدوت نت بدون كتابته بالسورس بلغة الدوت نت
ممايعني حفظ لسورسك او فانكشنك اللي بالناتيف صعب تحليله
امام السهولة الشديدة بتحليل ملف الدوت نت
الموضوع له علاقة بالتلغيم واخفاء ماتم عمله بالسورس حيث ان الفانكشن او السورس المستغل
ليس ضمن اكواد الدوت نت ..وايضا يفيد التشفير ..
صحيح انني قمت بدراسة السي++ لمدة فصل كامل بالجامعة
بس ماكان عندي اهتمام بالهاك والامور هذه وكنت اكرهها
لذلك كمثال ولانني لااستطيع عمل اي شيء بالسي++
او لربما استطيع ولكن كرهي للغة هذه مابخليني اعرف شي ههه
المهم عملت فانكشن صغيرة عن جمع رقمين واستخدامها بالدوت نت





وايضا كمثال جمع 2 سترينج او عدة متغيرات سترينج بفانكشن بالناتيف
واستخدام هذه الانكشن بالدوت نت
الامثلة هيه فقط لتجربة الطريقة ..ماكنت بعرفها ابدا
لو عندك فانكشن قوية او سورس قوي تستطيع استدعاءه بسهولة بالدوت نت
مثل ماقلت لك يمكن تتخطى عن طريق هالامر والتلغيم والتشفير ايضا رح يفيدك
بالنسبة لسورس السي شارب
ممكن انه يكون بتحديد الانتري بوينت بشكل صريح




او بالشكل الذي ساذكره بعد قليل
عملنا كلاس باسم ناتيف "سمها البدك اياه"
عملنا استيراد للdll اللي هوة عبارة عن مكتبة دايناميك بالسي++
وضعناه بجانب التطبيق الذي سينتج عن السورس "بامكانك دمج الملغين"
ومن ثم انشانا اتصال بالمكتبة CallingConvention التي هي بداخل الكلاس InteropServices
لذلك رح نحتاج المكتبة
System.Runtime.InteropServices
ومن ثم قمنا بمحاكاة للفانكشن المنشأة بالناتيف
اي قمنا بتعريف بعمل ميثود انتجر تستقبل متغيرين انتجر كما في الناتيف
اما عمل الفانكشن لم نقم ابدا بتضمين العمل ك اكود بالدوت نت
ومن ثم قمنا بوضع انتري بوينت جلبنا نقطة الادخال من الملفات التي يتم انتاجها تلقائيا بالناتيف
عن عمل مكتبة ربط ديايناميكية



بالنسبة للاسم _Z10PlusNmbersii فهو الانتري بوينت الخاصة بملف الناتف
يتم تغييره كلما تغير السورس كلما عملت كومبايل لسورس جديد
بالامكان الاستعاضة عن الانتري بوينت وحذفها "الشكل الثاني للسورس"




اعتقد واضح اصبح اسم الميثود هو اسم الانتري بوينت
في الماين الدالة الرئيسية التي سيعمل عندها برنامجنا
عرفنا متغير من نوع انتجر واستدعينا الكلاس ناتيف والميثود وقمنا بوضع رقمين لجمعهم
وعملنا مسج بوكس طبعا يتم التحويل لسترينج لان القيمة المخرجة هي انتجر
لمشاهدة الفديو من المرفقات
 

المرفقات

  • أعجبني
التفاعلات: Eagle_Master