مساء الخير عزيزي هبر. هذا المنشور هو دليل لإنشاء مكتبة .dll ديناميكية تحتوي على الرسائل اللازمة للعرض في مسجل مخصص موجود في Windows Event Viewer \ Application and Services Logs \ uuuu (كمثال).

في السجل المخصص ، يمكنك غالبًا رؤية الرسائل التي يحتوي وصفها على:

هذا يعني أن مصدر حدث yyyy لا يحتوي على مجموعة المعرف والوصف الضرورية.
من أجل تصحيح هذا الوضع ، من الضروري:
1. افتح regedit في المسار التالي: HKLM \ SYSTEM \ CurrentControlSet \ Services \ EventLog وتأكد من وجود القسم الخاص بك.
2. قم بإنشاء eventMessage.txt حيث تحتاج إلى وضع المعلمات الخاصة بك ، على
سبيل المثال مع msdn ، وحفظ في الترميز الضروري لنظام Windows-1251 أو Unicode وتنسيق eventMessage.mc.
ملاحظة: عند ملء eventMessage بالمعرف والوصف الخاصين بك ، ضع
دائمًا نقطة بعد الوصف ، وضع نقطة على سطر جديد ، وبعد وضع الحامل على سطر جديد.
مثال:
MessageId=0x1 SymbolicName=CAT_1 Language=English OutDescription for your application . MessageId=0x2
إذا لم تأخذ هذه الميزة في الاعتبار ، فقد تكون هناك أخطاء غير متوقعة أثناء التجميع.
3. قم بتشغيل كمد كمسؤول.
4. قم بتشغيل الأمر: mc.exe -u C: \ SomeFolder \ eventMessage.mc -r C: \ SomeFolder \ result
ملاحظة : يوجد mc.exe ، في الحالة الخاصة ، في
C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x86
بدلاً من التنسيق
-u (Unicode)
، يمكنك استخدام
-A (W-1251 ANSI, )
، والخيار
-r
هو موقع الإخراج حيث سيتم حفظ الملفات بعد التحويل البرمجي.
بعد تنفيذ الأمر ، سيتم إنشاء ما يلي: الملف الثنائي وملف eventMessage.rc في C: \ SomeFolder \ result
5. قم بتشغيل الأمر: rc.exe C: \ SomeFolder \ result \ eventMessage.rc
ملاحظة : يقع rc.exe في نفس الدليل مثل mc.exe.
بعد التحويل البرمجي ، سيتم إنشاء ملف eventMessage.res ، وهو أمر ضروري لإنشاء مكتبة ديناميكية.
6. قم بتشغيل الأمر: link.exe -dll -noentry /out:C:\SomeFolder\result\OurMessageSet.dll C: \ SomeFolder \ result \ event \ eventMessage.res.
ملاحظة: يقع link.exe ، في حالة خاصة ، في
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\SDK\ScopeCppSDK\VC\bin
7. تهانينا ، لقد أنشأنا معك المكتبة التي طال انتظارها ، ولكن هذا ليس كل شيء. ننتقل إلى regedit إلى دليلنا من الخطوة 1. في حقل الدليل ، قم بإنشاء معلمة سلسلة (قيمة سلسلة) ، وتسمية هذا الإنشاء في EventMessageFile ، وفي القيمة تشير إلى المسار إلى مكتبتنا: C: \ SomeFolder \ result \ OurMessageSet.dll. يبدو هذا:

تمت مراجعة الأدوات: mc.exe، rc.exe، link.exe.
نرجو أن تكون القوة معك.