mlang.dllを使用した文字コード判別
- 2008/01/12 VS2008用も追加。
文字コードを判別する - .NET Tips (VB.NET,C#...) を参考にやってみようと思いましたが、パスの設定などがわからなかったので調べてまとめました。
で、ワンクリックでできるようにバッチファイルにしました。
VS2005 + .NET Framework 2.0
set VS=C:\Program Files\Microsoft Visual Studio 8 call "%VS%\VC\vcvarsall.bat" x86 "%VS%\Common7\Tools\Bin\Midl.exe" "%VS%\VC\PlatformSDK\Include\MLang.Idl" move mlang.tlb "C:\Windows\system32\" "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\regtlibv12.exe" "C:\Windows\system32\mlang.tlb" del mlang.h mlang_i.c pause
バッチの詳細は以下の通りです。
1行目: VS2005へのパスを設定 VS2005をデフォルト以外のフォルダにインストールしてある場合はここを変更して下さい。(ダブルコーテーションと末尾の\は無しで)
2行目: VSの環境設定バッチを呼び出す これが無いとmidl.exeの実行中にエラーが発生します。
3行目: mlang.idl作成。
4行目: mlang.idlをC:\Windows\system32へ移動。
5行目: mlang.idlを登録 regtlib.exeがVS2003/2005両方に無かったので.NETフレームワークのものを使用しています。
6行目: mlang.tlbと同時にできた不要なファイルを削除
7行目: 一時停止
上のバッチを実行して、
Registration of C:\Windows\system32\mlang.tlb successful.
と表示されれば成功です。
VSの参照設定->追加のCOMタブにMultiLanguage Object Modelがあるはずなので、それを追加します。
VS2008 + .NET Framework 2.0
set VS=C:\Program Files\Microsoft Visual Studio 9.0 set SDK=C:\Program Files\Microsoft SDKs\Windows\v6.0A call "%VS%\VC\vcvarsall.bat" x86 "%SDK%\Bin\Midl.exe" "%SDK%\Include\MLang.Idl" move mlang.tlb "C:\Windows\system32\" "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\regtlibv12.exe" "C:\Windows\system32\mlang.tlb" del mlang.h mlang_i.c pause
SDKの場所が変わってます。
#はてな記法で色々なコードに色づけできることを知りました。便利ですね。変なとこに色ついてるけど