未来情報産業株式会社 もじかんDLLマニュアル


LOCATION:

ダイナミックリンクライブラリー

概要

説明するDLL

DLLの大半は企業秘密で、特に、実際の変換DLLの仕様は非公開となっています。この仕様の公開(ソースリスト含む)については、弊社との機密保持契約の締結が必要です。

仕様を公開しているのは、統括DLLである「gtef.dll」(UNIX用はgtef.so)です。

使用方法

DLLですので、基本的にはプログラム内で動的リンクをして使用します。

但しここで紹介するgtef.dllは、同時にgtef.libも配布しますので、静的リンクして利用することができます。gtef.dllは他の言語コンポーネントと違って常に存在するものなので、静的リンクする方が処理が簡潔に済み利便性が高いかも知れません。

gtef.dll

存在するAPI

存在するAPIは以下の通りです(バージョン1.0.1.0現在)。

βバージョンの現在は開発中のため、APIの仕様が変わることがあります。ご要望等もお受けしております。

iconvと似たインターフェイスを備えているため置き換えが容易ですが、それ以外はWindows的なAPI名となっております。

メモリー入力メモリー出力(iconv風)はgtef関数を、ファイル/標準入力→ファイル/標準出力の変換はgteffile関数を使用します。

LibGetVersion

書式

#include <gtef.h>

DWORD LibGetVersion(char *pchOut, size_t len);
		

引数

char *pchOut
DLL名称を格納するバッファ(必須)
size_t len
DLL名称を格納するバッファの長さ

返却値

DWORD
バージョン番号(4ビット区切り×4で計32ビット)

解説

他の「もじかん」コンポーネントライブラリーとの共通仕様となっています。

DLL名称を文字列で得られます。必要がなくてもバッファを確保して引数として与えてください。

LibChkEncode (暫定仕様)

書式

#include <gtef.h>

int LibChkEncode(char *pchEncName, const size_t lenEncName,
                 char *pchBuf, const size_t lenBuf);
		

引数

char *pchEncName
エンコード名格納用バッファのポインター
size_t lenEncName
エンコード名格納用バッファの長さ
char *pchBuf
確認するデータの先頭ポインター
size_t lenBuf
確認するデータの長さ

返却値

int
0で正常終了、0以外でエラー
値は、エラーコードとなっています。

解説

メモリー上に置かれた文字列のエンコードチェックを行ないます。

解析結果は、文字列として返されます。

基本的にはCES名、例えば「ISO-2022-JP」「Shift_JIS」のように返されますが、CCS名も含めたものが返されることもあります。この場合、「CES名/CCS名」と、スラッシュで区切られます。

(今後予定) 現在の暫定仕様では、言語指定ができません。「もじかん」の自動識別機能はいずれ言語指定対応とする予定ですが、この時にAPIも言語を指定した識別が可能なように改良する予定です。

gtef_running

書式

#include <gtef.h>

int gtef_running();
		

返却値

int
0:利用可能、0以外:動作中のため利用不可

解説

このDLLは多重動作が出来ません。事前に動作中でないか確認してください。

gtef_open

書式

#include <gtef.h>

gtef_t gtef_open(const char *pchToEnc, const char *pchFromEnc);
		

引数

char *pchToEnc
出力エンコード名
char *pchFromEnc
入力エンコード名

返却値

gtef_t
変換ディスクリプター
エラー時(未対応符号名等)には、(gtef_t)-1 が返ります。

解説

iconv_openと近い仕様になっていますが、以下の仕様差があります。

gtef_setfile

書式

#include <gtef.h>

int gtef_setfile(gtef_t cd, const char *pchToName, const char *pchFromName);
		

引数

gtef_t cd
gtef_openで取得した変換ディスクリプターを指定します
char *pchToName
出力ファイル名
char *pchFromName
入力ファイル名

返却値

int
0で正常終了、0以外でエラー
値は、エラーコードとなっています。

解説

ファイル間変換をする場合は、この関数によりファイル名を設定しておく必要があります。

gtef_close

書式

#include <gtef.h>

int gtef_close(gtef_t cd);
		

引数

gtef_t cd
gtef_openで取得した変換ディスクリプターを指定します

返却値

int
0で正常終了、0以外でエラー
値は、エラーコードとなっています。

解説

終了前に、この関数で変換ディスクリプターを開放する必要があります。

gtefctl

書式

#include <gtef.h>

int gtefctl(gtef_t cd, u_long dwRequest, u_long dwArgument);
		

引数

gtef_t cd
gtef_openで取得した変換ディスクリプターを指定します
u_long dwRequest
リクエスト番号を指定します
u_long dwArgument
引数を指定します

返却値

int
0で正常終了、0以外でエラー
値は、エラーコードとなっています。

解説

各種のオプション設定は、この関数を用います。

添付のgtefapi.hで、リクエスト番号と、そこで用いる引数が #define されます。

gnuiconvのiconvctlとは仕様が異なりますのでご注意下さい。

GTEF_RETURN (0x00000001)
GTEF_RETURN_THRU (0) ‐ そのまま (標準)
GTEF_RETURN_NONE (1) ‐ 削除
GTEF_RETURN_CR (2) ‐ CRのみ
GTEF_RETURN_CRLF (3) ‐ CR+LF
GTEF_RETURN_LF (4) ‐ LFのみ
GTEF_RETURN_NEL (5) ‐ NEL
GTEF_IVS (0x00000002)
GTEF_IVS_ALL (0) ‐ IVS有効
GTEF_IVS_AUTO (1) ‐ IVS自動
GTEF_IVS_OFF (2) ‐ IVS無効 (標準)
GTEF_IVS_CUT (3) ‐ IVS削除
GTEF_LANG (0x00000003)
GTEF_LANG_AUTO (0x00000000) ‐ 自動 (標準)
GTEF_LANG_JA (0x4a410000) ‐ JA 日本語
GTEF_LANG_ZH (0x5a480000) ‐ ZH 中文
GTEF_LANG_ZH_CN (0x5a48434e) ‐ ZH-CN 中文 大陸簡体
GTEF_LANG_ZH_TW (0x5a485457) ‐ ZH-TW 中文 台湾正体
GTEF_QUIETMODE (0x00000004)
0 ‐ 無効 (標準)
1 ‐ 有効
GTEF_JA_ZEN (0x4a410000)
GTEF_JA_ZEN_KATA (0x00000100) ‐ lng_ja.dll 全角変換カタカナ
GTEF_JA_ZEN_HIRA (0x00000101) ‐ lng_ja.dll 全角変換ひらがな
GTEF_JA_ZENJOIN_KATA (0x00000110) ‐ lng_ja.dll 全角変換(結合)カタカナ
GTEF_JA_ZENJOIN_HIRA (0x00000111) ‐ lng_ja.dll 全角変換(結合)ひらがな
GTEF_JA_YEN (0x4a410001)
0 ‐ lng_ja.dll 無効 (標準)
1 ‐ lng_ja.dll U+005C→U+00A5 変換有効

gtef

書式

#include <gtef.h>

int gtef(gtef_t cd, char **ppInBuf, size_t *plenInBuf,
                    char **ppOutBuf, size_t *plenOutBuf);
		

引数

gtef_t cd
gtef_openで取得した変換ディスクリプターを指定します
char **ppInBuf
入力するデータのポインターのポインター
size_t *plenInBuf
入力するデータサイズのポインター
char **ppOutBuf
結果格納用バッファのポインターのポインター
size_t *plenOutBuf
結果格納用バッファサイズのポインター

返却値

int
≧0で正常終了、<0でエラー、>0は今後の予約
<0時の値は、エラーコードとなっています。
正常終了後、plenOutBuf は、実際に格納されたサイズに書き換えられます。

解説

メモリー間で符号の変換をおこないます。

iconvと近い仕様になっていますが、以下の仕様差があります。

gteffile

書式

#include <gtef.h>

int gteffile(gtef_t cd, char *pchEncName, const size_t lenEncName,
                        char *pchBuf, const size_t lenBuf);
		

引数

gtef_t cd
gtef_openで取得した変換ディスクリプターを指定します
char *pchEncName
エンコード名を格納するためのバッファのポインター
size_t lenEncName
エンコード名を格納するためのバッファの長さ
char *pchBuf
動作中メッセージを格納するためのバッファのポインター
size_t lenBuf
動作中メッセージを格納するためのバッファの長さ

返却値

int
0で正常終了、0以外でエラー
値は、エラーコードとなっています。

解説

ファイル間で符号の変換をおこないます。

あらかじめ、gtef_setfile で、使用するファイルのパス名を設定しておいてください。

正常終了時、pchEncName で指定したバッファには、「入力符号名(TAB)出力符号名」のタブ区切り形式で符号名が格納されます。不要の場合には、nullptr (CならNLLLまたは0)を指定してください。

正常終了時、pchBuf で指定したバッファには、各種の動作メッセージが格納されます。不要の場合には、nullptr (CならNLLLまたは0)を指定してください。

アプリケーション

この仕様書に準じてアプリケーションを作成することは自由です。

公開に際しても、弊社の許諾は必要ありません。

しかし弊社としても興味がありますので、事前・事後問わず、弊社宛にその旨お伝えいただけるとありがたく思います。こちらよりリンクをさせていただくことがあります。

また、都合により仕様が変更になることがありますので、あらかじめご了承願います。

戻る
Copyright © Mirai Corporation 2007-2010 All rights reserved.