لقد قمت مؤخرًا بكتابة برنامج وحدة تحكم. وظيفة هذا البرنامج بسيطة جدًا وهي تصدير البيانات (حدد اسم الجدول، حدد اسم الحقل في الجدول) من قاعدة البيانات إلى ملف WORD وجدت أثناء الاختبار أنه عندما يقوم المستخدم بالتصدير بعد إنشاء جدول قاعدة بيانات، إذا كنت تريد تصدير البيانات إلى جدول آخر، فيجب عليك إعادة تشغيل البرنامج، وهو أمر غير جيد بوضوح. ومع ذلك، إذا تم تنفيذه باستخدام حلقات أو عبارات goto في البرنامج، فسيكون هناك الكثير من النص في وحدة التحكم ولن يبدو الأمر جيدًا. لذلك فكرت أخيرًا فيما إذا كان بإمكاننا جعل وحدة التحكم تمسح الشاشة تلقائيًا بعد الانتهاء من استيراد جدول قاعدة البيانات، ثم تصدير جدول قاعدة البيانات التالي. ثم بحثت عبر الإنترنت لفترة طويلة، لكن لم أتمكن من العثور على إجابة مرضية. الطريقة عبر الإنترنت لـ "مسح الشاشة" هي كتابة حرف n، ولا أعتقد أن هذا يؤدي إلى مسح الشاشة على الإطلاق. وفجأة فكرت في كتابة ملف DLL لمسح الشاشة بلغة C++، وكانت النتيجة مرضية تمامًا. أدناه سنقوم بتطبيق لغة C# لمسح الشاشة في وحدة التحكم خطوة بخطوة:
(1) افتح VS2005 وأنشئ مشروع مكتبة فئة C++ جديد يسمى CLS؛
(2) افتح ملف CLS.h وأعد تسمية اسم الفئة إلى "CLS"؛
(3) افتح ملف CLS.cpp وأدخل الملف "windows.h" فيه؛
// هذا هو ملف DLL الرئيسي.
#تشمل "stdafx.h"
#تشمل "windows.h"
#تتضمن "CLS.h"
(4) إضافة طرق ثابتة إلى فئة CLS (سمات الوصول عامة)
فئة المرجع العام CLS
{
عام:
ثابت باطل cls ()
{
نظام("cls");
}
};
(5) أخيرًا قم بتجميع المشروع بأكمله وإدخال CLS.dll في المجلد CLS/debug/ في مشروع C#؛
(6) أينما تريد مسح الشاشة، ما عليك سوى الاتصال بـ CLS.cls(). يمكن أيضًا تنفيذ وظائف مثل الإيقاف المؤقت باستخدام نفس الطريقة المذكورة أعلاه.
لماذا هذا ممكن؟ يجب على أي شخص درس .Net FrameWork أن يفهم جيدًا، لأنه بغض النظر عن لغة C++ أو C أو VB أو C#، سيتم إنشاء لغة IL (اللغة المتوسطة) في النهاية، لذلك بغض النظر عن البرنامج المكتوب باللغة المذكورة أعلاه، فإنه يمكن أن تكون قابلة للتشغيل البيني.
إذا كان أي شيء مكتوب أعلاه خطأ، من فضلك قل لي! لقد بدأت للتو في التدوين، وهناك بالتأكيد الكثير لأتعلمه.
http://www.cnblogs.com/blueskybcl/archive/2010/04/24/1719171.html