AkikoCRC_Plugin Ver 1.50
ダウンロードは一番下にあります。
このプラグインはCRC(Cyclic Redundancy Check:巡回冗長度チェック)を調べるREALBasic専用のPluginです。
このプラグインはTT's CRC-Plugin v1.0(By Thomas
Tempelmann)を元にCRC16,MD5,SHA1の値を取れるように、
またFolderItemからCRC16,CRC32,SHA1の値(一部特殊機能有り)を取れる様に、
またCarbonでも使用可能に改変したものです。
このプラグインはC言語初心者が作ったのでバグがあるかもしれません。
ウィンドウズ用としても使えます。
このプラグインの使用で起きた障害について作者は一切の責任を負いません。
全て各自の責任で行ってください。
☆インストール
まずREALbasicが起動している場合には終了してください。
次に、AkikoCRC_PluginをREALbasic本体のフォルダ内のPluginsフォルダに入れてください。
これでインストールは完成です。
TT's CRC-Pluginを使っている方はできれば外した方がいいでしょう。
SourceフォルダにはC言語のソースがあります。ソースマニアでなければ捨てて下さい。
SampleフォルダにはCRCCheckerのソースがそのまま入っています。
重要
Windows用に作成した場合、REALbasicのバージョンによっては、
WINDOWS\SYSTEM\内に(環境によって変化する)、
AKIRBCRC.DLLというファイルがアプリケーションの起動時に作成されます。
アンインストールの際にこのファイルの削除を忘れないようにしてください。
☆使用方法
メソッドのように使用してください。
Aki_CRCDillonはよくわかりません。32bitを指定してもAki_CRC32と同じ値が返ってきませんし、16bitでも同じです。
Aki_CRC16S(Str as String) as Integer
StrのCRC16の値をIntegerで返します。
Aki_CRC16F(File as FolderItem) as Integer
FileのDataForkのCRC16の値をIntegerで返します。
Aki_CRC16FFoot(File as FolderItem,DelFoot as Integer) as Integer
FileのDelFoot分だけ少ないDataForkのCRC16の値をIntegerで返します。
Aki_CRC16FMid(File as FolderItem,Pos as Integer,Length as Integer) as Integer
FileのDataForkのPosからLength分のデータのCRC16の値をIntegerで返します。
Aki_CRC16M(address as Integer, numBytes as
Integer) as Integer
MemoryのaddressからnumBytes分のCRC16の値をIntegerで返します。
MemoryBlock.Aki_CRC16(offset as Integer, numBytes
as Integer) as Integer
MemoryBlockのoffsetからnumBytes分のCRC16の値をIntegerで返します。
Aki_CRC32S(Str as String) as Integer
StrのCRC32の値をIntegerで返します。
Aki_CRC32F(File as FolderItem) as Integer
FileのDataForkのCRC32の値をIntegerで返します。
Aki_CRC32FFoot(File as FolderItem,DelFoot as Integer) as Integer
FileのDelFoot分だけ少ないDataForkのCRC32の値をIntegerで返します。
Aki_CRC32FMid(File as FolderItem,Pos as Integer,Length as Integer) as Integer
FileのDataForkのPosからLength分のデータのCRC32の値をIntegerで返します。
Aki_CRC32M(address as Integer, numBytes as
Integer) as Integer
MemoryのaddressからnumBytes分のCRC32の値をIntegerで返します。
Aki_MD5S(Str as String,Type as Integer) as String
StrのMD5の値をStringで返します。
Type=0:大文字(32byte),Type=1(32byte),小文字,Type=2(16byte)
Aki_MD5F(File as FolderItem,Type as Integer) as String
FileのDataForkのMD5の値をStringで返します。
Type=0:大文字(32byte),Type=1(32byte),小文字,Type=2(16byte)
Aki_MD5FMid(File as FolderItem,Pos as Integer,Length as Integer,Type as Integer) as String
FileのDataForkのPosからLength分のデータのMD5の値をStringで返します。
Type=0:大文字(32byte),Type=1(32byte),小文字,Type=2(16byte)
Aki_MD5M(address as Integer, numBytes as Integer, Type as Integer) as String
MemoryのaddressからnumBytes分のMD5の値をStringで返します。
Type=0:大文字(32byte),Type=1(32byte),小文字,Type=2(16byte)
Aki_SHA1S(Str as String,Type as Integer) as String
StrのSHA1の値をStringで返します。
Type=0:大文字(40byte),Type=1(40byte),小文字,Type=2(20byte)
Aki_SHA1F(File as FolderItem,Type as Integer) as String
FileのDataForkのSHA1の値をStringで返します。
Type=0:大文字(40byte),Type=1(40byte),小文字,Type=2(20byte)
Aki_SHA1FMid(File as FolderItem,Pos as Integer,Length as Integer,Type as Integer) as String
FileのDataForkのPosからLength分のデータのSHA1の値をStringで返します。
Type=0:大文字(40byte),Type=1(40byte),小文字,Type=2(20byte)
Aki_SHA1M(address as Integer, numBytes as Integer, Type as Integer) as String
MemoryのaddressからnumBytes分のSHA1の値をStringで返します。
Type=0:大文字(40byte),Type=1(40byte),小文字,Type=2(20byte)
Aki_CRCDillonS(bitWidth as Integer , Str as
String) as String
StrのCRC(bitWidth)の値をStringで返します。
Aki_CRCDillonM(bitWidth as Integer , address
as Integer, numBytes as Integer) as String
MemoryのaddressからnumBytes分のCRC(bitWidth)の値をStringで返します。
MemoryBlock.Aki_CRCDillon(bitWidth as Integer , address as Integer, numBytes as Integer) as String
MemoryBlockのoffsetからnumBytes分のCRC(bitWidth)の値をStringで返します。
☆更新履歴
1.50(5,Mar 2003)
SHA1(Secure Hash Algorithm 1)を取得できるようにしました。
1割ほど高速化しました。
REALbasic5用のSDKでコンパイルしました。
1.40(未公開)
MD5(Message Digest 5)を取得できるようにした。
1.31(5,Sep 2002)
WindowsでSYSTEMディレクトリ内にDLLが自動作成される説明を追加。
Mac用は何も変わっていません。
1.30(6,Aug 2002)
バッファ(512バイト)にデータを貯めておいてから計測するようにした。
あまりテストしていませんが、1.15倍くらい早くなったようです。
1.20(31,Jul 2002)
新メソッド"Aki_CRC??FMid"を追加。また、Aki_CRC??FEXをAki_CRC??FFootに変更。使用方法参照。
Carbonの設定がPPCとなっていたのを修正(説明になってませんが)。
1.11(17,May 2002)
ファイルのフッタを削ってCRC16,CRC32の値を取れる様に改造。
1.1(25,Mar 2002)
FolderItemからCRC16,CRC32の値を取れる様に改造。
1.0b(4,Aug 2001)
一般初公開。
一時間では到底無理だとは分かっていましたが、まさか二日もかかるとは…
全く知らないC言語で自力で書こうとしなくて良かった(~_~;)
RbJMLの過去ログを見て、初めはMPWで作ろうと思ったんですが、私には無理でした。
ディスクもかなり一杯でしたが、何とか500MBほどあけてCodeWarriorをインストール。
わずか160KBほどのプラグインを一個作るのにどれだけの労力をかけたでしょう。
CodeWarriorも最初はさっぱり訳分からなくて、もうとにかく大変でした。
☆開発環境・動作環境
以下の環境で開発しました。
・Macintosh PPC (MacOS X 10.2.4/MacOS9.22 on iBook300MHz/192MB)
・CodeWarrior 5.3J Pro(CodeWarrior IDE 4.04J)
・CarbonLib 1.6
・ResEdit 2.3
以下の環境用に使用可能です。
・Macintosh Classic/Carbon
・Windows95以降
☆著作権・配布・転載・譲渡・その他
このプラグインは私が一から作ったものではありません。使用・改変が可能なソースを改変し、
コンパイルし、作ったものです。オリジナルのソースはThomas Tempelmann氏のホームページで無料で得ることができます。
私の改変したソースも公開します。
自由にこのプラグインを使ってソフトウェアを作ってください。
ただし、アバウト画面やドキュメントに私のサイトへのリンクを載せる事を条件とします。
もし自作したソフトウェアまたはソースにプラグインを同封したい場合は御連絡ください。
私のソースの再配布はオリジナルの状態で行ってください。その場合にはオリジナルの圧縮状態にしてください。
MD5のソースは、RFC1321に書かれているものを使用しています。
MD5を使用する場合には、"RSA Data Security, Inc. MD5 Message-Digest Algorithm"とアバウト画面やドキュメントに記載して下さい。
このプラグインの著作権は私、LETTERにあります。
転載・譲渡は自由に行って構いませんが、できればメールまたは掲示板の方へ御連絡ください。
☆ダウンロード
ありがとうございます。
Ver1.50(148KB)
Copyright © 2001-2003 LETTER, all rights reserved.
http://homepage.mac.com/ultimate_weapon/
ultimate_weapon@mac.com