カスタムログでは、多くの場合、説明に次の内容が含まれるメッセージを見ることができます。
これは、yyyyイベントソースに必要なIDと説明のセットが含まれていないことを意味します。
この状況を修正するには、次のことが必要です。
1.次のパスでregeditを開きます:HKLM \ SYSTEM \ CurrentControlSet \ Services \ EventLog、パーティションが存在することを確認します。
2. msdnを使用して、パラメーターを配置する必要があるeventMessage.txtを作成します。必要なエンコードWindows-1251またはUnicodeで保存し、eventMessage.mcをフォーマットします。
注: eventMessageにIDと説明を入力する場合、常に説明の後に新しい行にドットを配置し、その後に新しい行にキャリッジを配置します。
例:
MessageId=0x1 SymbolicName=CAT_1 Language=English OutDescription for your application . MessageId=0x2
この機能を考慮しない場合、コンパイル中に予期しないエラーが発生する可能性があります。
3.管理者としてcmdを実行します。
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, )
使用できます
-A (W-1251 ANSI, )
、および
-r
オプションは、コンパイル後にファイルが保存される出力場所です。
コマンドを実行すると、CのバイナリファイルとeventMessage.rcファイルが作成されます。\ 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 \ eventMessage.res。
注:特定の場合、link.exeは
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\SDK\ScopeCppSDK\VC\bin
7.おめでとうございます。待望のライブラリを作成しましたが、それだけではありません。 手順1からディレクトリのregeditに移動します。ディレクトリフィールドで、文字列パラメーター(文字列値)を作成し、EventMessageFileでこの作成に名前を付け、値にライブラリへのパスを示します:C:\ SomeFolder \ result \ OurMessageSet.dll 次のようになります。
レビューしたツール:mc.exe、rc.exe、link.exe。
力があなたと共にありますように。