MC.exe (مترجم الرسائل) ، rc.exe ، link.exe لإنشاء .dll لملف EventMessageFile

مساء الخير عزيزي هبر. هذا المنشور هو دليل لإنشاء مكتبة .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.

نرجو أن تكون القوة معك.

Source: https://habr.com/ru/post/ar426121/


All Articles