nkf32.dll に対する COM ラッパーです
初版(ver1.0.0.1)
2002/12/06
最初のバージョン
初版(ver1.0.0.1)
2003/07/03
sCOMmon.dll の関数追加に伴い再コンパイルした。
第二版(ver1.0.1.0)
2003/07/23
独自の SJIS<->JIS ルーチンを追加
第二版(ver1.0.1.1)
2006/04/07
fromSJIS() 関数の戻り配列で文字列終コードまで戻していたが、戻さないように仕様変更
第二版(ver1.0.1.1)
2006/08/20
sCOMmon.dll の関数追加に伴い再コンパイルした
第二版(ver1.0.1.1)
2006/08/25
sCOMmon.dll のバグ修正に伴い再コンパイルした
第二版(ver1.0.1.2)
2007/11/08
sCOMmon.dll の再コンパイルに伴い再コンパイルした
第二版(ver1.0.1.3)
2012/05/28
sCOMmon.dll の再コンパイルに伴い再コンパイルした
内容
nkf32.dll の COM ラッパーです。
nkf とは漢字コードを変換する 市川至氏+Shinji Kono氏他が製作した日本語漢字フィルターです。
nkf の最新版は、
sourceforge.jp
から入手できます。
nkf32 とは、海人 >uminchu< 氏が nkf を Win32 への移植したものです。
nkf32 の最新版は
http://www.vector.co.jp/authors/VA002133/
から入手できます。
本プログラムは、masu(桝本 清)氏が製作した nkf32.dll を扱う CNkf を利用しています。 CNkf は、
http://member.nifty.ne.jp/~masumoto/deposite/nkfwrap/index.html
から入手できます。
メソッド一覧 (sNKF32COM.dll)
戻り値 = toSJIS(引数)
引数を SJIS にして戻り値に戻します。
引数は、Byte 型配列である必要があります。
戻り値は、文字列(VBScript/VisualBASIC の普通の文字列{BSTR 型})です。
成功した場合、ErrorNo には、変換後のバイト数が格納されます。
エラーの場合、ErrorNo には、負数が格納されます。
(変換ルーチンは nkf32.dll を利用)
戻り値 = fromSJIS(引数1,引数2)
引数1 を SJIS として、引数2 を元に変換します。
引数2 は省略可能です。
省略した場合、"j" を指定したものと同じとなります。
引数2 には、nkf.c への変換オプションそのままだったりします。
例えば、引数2 に「"e"」を指定すれば、EUC に変換します。
引数1 は、文字列(VBScript/VisualBASIC の普通の文字列{BSTR 型})である必要があります。
戻り値は、Byte 型配列です。(変換データ+1Byte)
(最後の 1Byte は文字列終端コード{0x00}です)
ver1.1.0.1 より戻り値は、Byte 型配列です。(変換データのみ)
成功した場合、ErrorNo には、変換後のバイト数(文字列終端コードを含)が格納されます。
エラーの場合、ErrorNo には、負数が格納されます。
(変換ルーチンは nkf32.dll を利用)
戻り値 = IsError()
直前のメソッドが成功したかどうかです。
0 以上で成功
負数でなにがしかのエラーです。
SJIS2JIS(引数1,引数2,引数3,引数4)
独自の SJIS⇔JIS 変換ルーチンで変換をする。
といっても、自分で JIS in/out コードを指定しなきゃいかんので、あまり使わないでしょう。
ISO2022jp への変換であれば、上の関数を使う事。
第一引数に入力データ
第二引数に JIS in コード
第三引数に JIS out コード
第四引数はモード(0: SJIS→JIS, 1: JIS→SJIS)
全ての引数、全ての戻り値は、Byte 配列です。
(ソースは、SJIS2JIS.cpp&SJIS2JIS.h)
例
Option Explicit
Dim Obj
Set Obj = WScript.CreateObject("SNKF32COM.NKF32ATL.1")
str = "日本語"
WScript.Echo str
str1 = Obj.FromSJIS(str,"j")
WScript.Echo str1
str2 = Obj.toSJIS(str1)
WScript.Echo str2
Set Obj = Nothing
インストール方法
ここ
から sCOMmon.dll をダウンロードして、これをシステム・ディレクトリ(%SystemRoot%\System32 {Win64 → %SystemRoot%\SysWOW64})にコピーします。
nkf32.dll も海人氏の Web サイトからダウンロードして、システム・ディレクトリ(%SystemRoot%\System32 {Win64 → %SystemRoot%\SysWOW64})にコピーしてください。
ダウンロードしたファイルを解凍しします。
(LHAは、吉崎栄泰氏が、著作権を所有)
sNKF32COM.dll を任意のディレクトリにコピー。
コピーされたディレクトリで、regsvr32.exe を実行して sNKF32COM.dll をレジストリに登録。
(同梱されている regsvr32.bat を sNKF32COM.dll と同一ディレクトリにコピーして実行することでも可能。
以上で、
VBScript,JScript,VisualBASIC にて、この COM コンポーネントを利用可能。
アンイストール方法
RegSvr32 コマンドの /u オプションを用いて、sNKF32COM.dll をレジストリから削除して、sNKF32COM.dll を削除すればいいです。
必要がなくなったら、sCOMmon.dll も削除する。
ソースコードの使い方
sNKF32COM.lzh の source 以下に MS-VisualC++ ver6.0 SP6 のプロジェクトがあります。
(コンパイル・オプションをデフォルト値から変更しています{詳細は、compile.txt}。)
ただし、masu(桝本 清)氏が製作した nkf32.dll を扱う CNkf の CPP ファイル(NkfWrap.cpp&NkfWrap.h)は添付していません。
別途、入手する必要があります。
一部、ソースの修正をしています(詳細は、compile.txt)。
エラーコード
ErrorNo の値は、説明を省略
sError.h を参照
SJIS<->JIS ルーチン
ここ
を参照
免責など
著作権は保持します。(とりあえず)
このソフトを使用したことによって生じた、
いかなる損害についても責任は持ちません。
ソースコードについても、各自の責任において改変する事については、自由おこなって頂いて結構です。
「参考になったよ」メールを投げてくれると嬉しいです。(*^_^*)
DownLoad
(sNKF32COM.lzh as 96,760byte) (
sNKF32COM.lzh.base64
)
sNKF32COM.dll is 81,920byte(ver1.0.1.3)
リンク:
WindowsAPI で UTF-7/8 変換をする COM
mail to active@window.goukaku.com