複数のネイティブ関数又はネイティブメソッドをネイティブサブルーチンとして備えたネイティブライブラリと、該複数のネイティブサブルーチンのそれぞれについて、第1の中間言語で記述された関数呼出しに応答して、該第1の中間言語で記述された関数呼出しコードの各引数の型を該ネイティブサブルーチンの対応する引数の型に変換して該ネイティブサブルーチンを呼出し、該ネイティブサブルーチンの戻り値の型を該第1の中間言語の対応する型に変換して該第1の中間言語で記述された関数の呼び出し元に返す型変換メソッドを備えた第1ラッパークラスと、該複数のネイティブサブルーチンのそれぞれについて、第2の中間言語で記述された関数呼出しに応答して、該第2の中間言語で記述された関数呼出しコードの各引数の型を該ネイティブサブルーチンの対応する引数の型に変換して該ネイティブサブルーチンを呼出し、該ネイティブサブルーチンの戻り値の型を該第2の中間言語の対応する型に変換して該第2の中間言語で記述された関数の呼び出し元に返す型変換メソッドを備えた第2ラッパークラスと、を有し、該ネイティブライブラリ、該第1ラッパークラス及び該第2ラッパークラスを中間言語用拡張ライブラリとして備えていることを特徴とするソフトウェア開発キット。該第1の中間言語はCの中間言語であり、該第2の中間言語はJava登録商標の中間言語であることを特徴とする請求項1に記載のソフトウェア開発キット。携帯端末のユーザアプリケーション開発用であることを特徴とする請求項1又は2に記載のソフトウェア開発キット。請求項1乃至3のいずれか1つに記載のソフトウェア開発キットを用いて作成されたことを特徴とする画像形成装置用拡張アプリケーション。請求項4に記載の画像形成装置用拡張アプリケーションがインストールされていることを特徴とする携帯端末装置。ところが従来では、Java登録商標とC/Cとの連携と、CとC/Cとの連携とが、それぞれ独立して行われていたので、ネイティブライブラリの開発及び改良が遅延し、結果として、複数種のスマートフォン用アプリケーションの開発及び改良が遅延する原因となっていた。本発明の目的は、このような問題点に鑑み、ネイティブライブラリと複数種の中間言語のプログラムとの連携を効率よく行うことが可能なソフトウェア開発キット、これを用いて作成された画像形成装置用拡張アプリケーション及びこのアプリケーションを備えた携帯端末装置を提供することにある。本発明によるソフトウェア開発キットの第1態様では、複数のネイティブ関数又はネイティブメソッドをネイティブサブルーチンとして備えたネイティブライブラリと、該複数のネイティブサブルーチンのそれぞれについて、第1の中間言語で記述された関数呼出しに応答して、該第1の中間言語で記述された関数呼出しコードの各引数の型を該ネイティブサブルーチンの対応する引数の型に変換して該ネイティブサブルーチンを呼出し、該ネイティブサブルーチンの戻り値の型を該第1の中間言語の対応する型に変換して該第1の中間言語で記述された関数の呼び出し元に返す型変換メソッドを備えた第1ラッパークラスと、該複数のネイティブサブルーチンのそれぞれについて、第2の中間言語で記述された関数呼出しに応答して、該第2の中間言語で記述された関数呼出しコードの各引数の型を該ネイティブサブルーチンの対応する引数の型に変換して該ネイティブサブルーチンを呼出し、該ネイティブサブルーチンの戻り値の型を該第2の中間言語の対応する型に変換して該第2の中間言語で記述された関数の呼び出し元に返す型変換メソッドを備えた第2ラッパークラスとを有し、該ネイティブライブラリ、該第1ラッパークラス及び該第2ラッパークラスを中間言語用拡張ライブラリとして備えている。本発明によるソフトウェア開発キットの第2態様では、第1態様において、該第1の中間言語はCの中間言語であり、該第2の中間言語はJava登録商標の中間言語である。本発明によるソフトウェア開発キットの第3態様では、第1又は2態様において、携帯端末のユーザアプリケーション開発用である。上記第1態様の構成によれば、複数種の中間言語から、それぞれのラッパークラスを介し、これらに共通のネイティブライブラリを利用することができるので、ネイティブライブラリと複数種の中間言語のプログラムとの連携を効率よく行うことが可能となるという効果を奏する。また、複数種の言語のそれぞれのプログラマが、該ネイティブライブラリを、ネイティブコードであることを意識せずに該複数種の言語のそれぞれの拡張ライブラリとして用いることができるという効果を奏する。さらに、ネイティブライブラリを複数種の言語で共通に用いることができるので、上記第3態様の構成によれば、複数種の言語のそれぞれが選択的に用いられる携帯端末のアプリケーションの開発及び改良が遅延するのを防止することができるという効果を奏する。本発明の他の目的、特徴的な構成及び効果は、以下の説明を特許請求の範囲及び図面の記載と関係づけて読むことにより明らかになる。図1は、本発明の実施例1に係る、複数のクラウドサービスを利用する画像形成システムの概略構成図である。このシステムでは、イントラネット10に、画像形成装置11と、ユーザ端末としてのパーソナルコンピュータPC12と、無線LANのアクセスポイント13とが結合され、スマートフォン14がアクセスポイント13を介してイントラネット10に結合される。このイントラネット10がルータ不図示を介してインターネット20に結合される。インターネット20には、複数のクラウド21~23が結合されている。また、インターネット20に基地局24が結合され、スマートフォン14及び25から基地局24を介しイントラネット10に結合される。複数のクラウド21~23はそれぞれ、クラウドサービス31~33を各種クライアント端末に対し提供可能となっている。ユーザは、PC12、スマートフォン14及び25などに拡張アプリケーションをインストールすることにより、これらからWebサービスとして、画像形成装置11のコピー、プリント及びファクシミリなどの基本的なサービスやクラウドサービス31~33並びにこれらサービスを組み合わせたものを実行したり、画像形成装置11の設定情報を取得したり、この設定を変更したりすることが可能となる。図1では、簡単化の為に、複数のPC端末を1つのPC12で代表し、アクセスポイント13に対する複数の携帯端末を1つのスマートフォン14で代表し、基地局24に対する複数の携帯端末を1つのスマートフォン25で代表している。図2は、画像形成装置11の階層構造を示すブロック図である。画像形成装置11は、ハードウェアとしてスキャナ40、プリンタ41、FAX42、操作パネル43及びネットワークインターフェイスNIC44を備え、プラットフォーム50を介してそれぞれの基本的な入出力制御を行うことが可能となっている。プラットフォーム50は、前記制御を行ったり、電源を管理したり、TCP/IPなどのプロトコルで通信したりするオペレーティングシステムOSと、OSの下層の各種デバイスドライバと、OS上のJava登録商標VMやCLRCommonLanguageRuntimeなどの仮想マシンクラスライブラリと、標準ライブラリとを備えている。制御モジュール51は、拡張クラスライブラリであって、プラットフォーム50のAPI52を介してこれらハードウェアのそれぞれを機能単位で制御可能となっている。基本アプリケーション53は、制御モジュール51のAPI54を介し、ハードウェア40~44をコピー、プリント及びファクシミリなどのような論理的な機能単位で制御可能となっている。ハードウェア40~44に対する設定情報は、操作パネル43の操作に応答して、制御モジュール51により設定情報データベース55に格納され、また、格納された設定情報は、操作パネル43の操作に応答して制御モジュール51により、操作パネル43に表示される。システム管理部56は、API52又はAPI54を介して、ユーザに対する認証、認可の処理を行ったり、エラー管理を行ったり、省電力管理を行ったりする。PC12又はスマートフォン14若しくは25から画像形成装置11へのサービス要求は、NIC44及びプラットフォーム50を介してWebサービスプロバイダ57に伝えられ、Webサービスプロバイダ57はその要求に応じて、API58を介し基本アプリケーション53を動作させ、API54を介し設定情報データベース55から設定情報を読み出し又は設定情報データベース55の設定を変更し、それらの結果を返信する。図3は、スマートフォン14の階層構造を示すブロック図である。スマートフォン14は、ハードウェアとしてカメラ60、傾きセンサ61、ブルーツース通信部62、操作パネル63及び通信アダプタ64などを備え、通信アダプタ64にアンテナ65が結合され、プラットフォーム70を介してそれぞれの基本的な入出力制御を行うことが可能となっている。プラットフォーム70は、前記制御を行ったり、電源を管理したり、TCP/IPなどのプロトコルで通信したりするOSと、OSの下層の各種デバイスドライバと、OS上の仮想マシンと、標準ライブラリとを備えている。制御モジュール71は、拡張クラスライブラリであって、プラットフォーム70のAPI72を介してこれらハードウェアのそれぞれを機能単位で制御可能となっている。基本アプリケーション73は、ブラウザ、動画プレーヤ及びアドレス帳などを含み、制御モジュール71のAPI74を介し、ハードウェア60~64を論理的な機能単位で制御可能となっている。ハードウェア60~64に対する設定情報は、操作パネル63の操作に応答して、制御モジュール71により設定情報データベース75に格納され、また、格納された設定情報は、操作パネル63の操作に応答して制御モジュール71により、操作パネル63に表示される。システム管理部76は、API72又は74を介して、ユーザに対する認証、認可の処理を行ったり、エラー管理を行ったり、省電力管理を行ったりする。Webクライアント77は、操作パネル63の操作に応答してAPI72を介しそのURLにHTTPプロトコルで要求を送信し、返信された内容を操作パネル63に表示させる。拡張アプリケーションユーザアプリケーション78は、基本アプリケーション73のAPI79を介して、単一又は複数の機能の組み合わせを実行させ、API74を介し設定情報データベース75の設定情報を読み取って操作パネル63に表示させ又は設定情報データベース75の設定情報を変更させる。Webサービスインターフェイス7Aは、Webサービスを内部メソッドのように呼び出すためのサービスプロキシと、送信時に該メソッドの呼び出しをXMLに変換するシリアライザと、受信時にXMLを該メソッドの戻り値に変換するデシリアライザとを備えている。上記拡張アプリケーション78はまた、Webサービスインターフェイス7A及びWebクライアント77を介し画像形成装置11のWebサービスプロバイダ57又はクラウド21~23のサービス31~33に対し要求を行い、その結果を、Webクライアント77及びWebサービスインターフェイス7Aを介して受信し、その内容を操作パネル63に表示させる。図4は、PC12のハードウェア構成を示す概略ブロック図である。図5は、PC12をソフトウェア開発装置として利用する場合の概略機能ブロック図である。ホストコンピュータPC12では、CPU91がインターフェイス92を介してメモリ93、補助記憶装置94、会話型入出力装置95及びネットワークインターフェイス96に結合されている。図4では、簡単化の為に、複数種のインターフェイスを1つのブロック92で表している。メモリインターフェイス92は例えば、BIOSが格納されたフラッシュメモリと、主記憶装置として用いられるDRAMとを備えている。補助記憶装置94には、OS、各種デバイスドライバ、ライブラリ及び仮想マシンがプラットフォームPFとして格納され、さらにソフトウェア開発キットSDKが格納されている。ネットワークインターフェイス96は、イントラネット10に結合されている。このソフトウェア開発装置は、図3中の拡張アプリケーション78の開発を支援するもであり、ネイティブライブラリを備えてスマートフォンでの処理を高速化可能にするとともに、複数のプラットフォームのうちの任意の1つを搭載したスマートフォンの拡張アプリケーション78を開発可能にし、しかも、マルチ言語対応にしてプログラミング言語を選択可能にしている。図5中、構成要素72A、171、173~176及び179はそれぞれ図3中の構成要素72、71、73~76及び79に対応している。これら構成要素72A、171、173~176及び179は、図3中の対応する構成要素のうち、拡張アプリケーション78を開発するのに必要な部分のみを備えていればよい。ラッパーAPI172は、API110をラッパーすることによりAPI72と同じに見せかけるものである。PC12は、通常のSDKと同様に、テキストエディタ100、デザイナ101、デバッガ102及びビルダ103と、ユーザの操作に応答してこれらのいずれかを呼び出す処理やプロジェクト生成処理等を行うアプリ開発統合管理部104とを備えている。デザイナ101は、操作パネル63の画面設計のアプリケーション開発を支援するためのものであって、対話的ビジュアル設計に基づいてプログラムを自動生成するものである。ビルダ103は、複数の言語、例えばC、C、C及びJave登録商標のそれぞれに対応したコンパイラを備えている。拡張アプリケーション78のソースコードは、C又はJava登録商標の言語で、C/Cよりも効率よく作成される。このソースコードは、ビルダ103内の対応するコンパイラにより、中間言語に翻訳される。この中間言語は、プラットフォーム内のCランタイム又はJavaランタイムの下で、解釈実行され又はJITJustInTimeコンパイルされて実行される。Cランタイム及びJavaランタイムはそれぞれ、CLR共通言語実行環境及びJVMJava仮想マシンを備えている。ここで、図5の制御モジュール171は、アプリケーションレベルの通信や画像などを高速処理するクラスライブラリを備えており、これは、図6Aに示すように、C又はCのソースコードをコンパイルしたネイティブライブラリ120と、マルチ言語対応にするためC及びJava登録商標のラッパークラスのソースコードをコンパイルしたラッパーAPI121及び122とを備えている。C用ラッパーAPI121は、拡張アプリケーション78の中間コードの一部が、ネイティブライブラリ120内のC関数又はCクラスのメソッドネイティブサブルーチンを、Cのクラスのインスタンスのメソッドとして呼び出せるようにするためのクラスライブラリであり、Cの該メソッドのシグネチャをネイティブライブラリ120内のC関数又はCクラスのメソッドネイティブサブルーチンのシグネチャに変換する型変換メソッドを含んでいる。拡張アプリケーション78の中間コードの一部は、この型変換メソッド介して、ネイティブサブルーチンを呼び出す。図7は、この型変換メソッドでの処理を示す概略フローチャートである。S0Cのメソッド呼び出しコードシグネチャに含まれる引数の型を、ネイティブライブラリ120内の対応するネイティブサブルーチンの引数の型に変換する。S1この引数を用いて該ネイティブサブルーチンを呼び出す。これにより、該ネイティブサブルーチンが実行されて、戻り値が生成される。S3この戻り値の型を、メソッド呼出元の対応する型上記シグネチャの戻り値の型に変換し、メソッド呼出元に返す。ラッパーAPI121は、このような型変換メソッドと、Cの仕様に基づいてメモリ管理を行うためのコンストラクタ及びデストラクタなどの言語仕様変換に必須のものとを含んだ1つ又は複数のクラスクラスライブラリである。Java用ラッパークラス122もC用ラッパーAPI121と同様である。C用ラッパークラス121及びJavaラッパークラス122は、ラッパークラス生成ツール内の対応する言語のものを用いて生成される。即ち、ラッパークラス生成ツールは、C/CLRを用いてCラッパークラス120を生成するツールと、JNIに基づいてJavaラッパークラス1211を生成するツールとを備えている。ネイティブライブラリ120は、特定のプラットフォーム70PL1のOS又は/及びライブラリ、例えば.NETフレームワークの標準ライブラリを用いて作成されている。ラッパーAPI172は、ネイティブライブラリ120から見てプラットフォーム70をPL1と見なせるようにするためのものである。PC12はまた、図6Bに示すような制御モジュール171Aも備えている。制御モジュール171Aは、ネイティブライブラリ120と同一機能のネイティブライブラリ120Aと、C用ラッパーAPI121及びJava登録商標用ラッパーAPI122とを備え、これらラッパーAPI121及びAPI122は制御モジュール171のものと共用である。ネイティブライブラリ120Aは、他のプラットフォーム70PL2のOS又は/及びライブラリ、例えばLinax登録商標のクラスライブラリを用いて作成されている。ラッパーAPI172Aは、ネイティブライブラリ120Aから見てプラットフォーム70をPL2と見なせるようにするためのものである。上記共用を可能にするため、ネイティブライブラリ120A内の各メソッドのシグネチャはネイティブライブラリ120のそれと同一になっている。すなわち、ネイティブライブラリ120と120AのC又はCソースコードでの相違部分は、プラットフォームPL1とPL2のいずれのAPIを使用しているか及びその周辺部分であり、他は互いに同一である。図8Aは、制御モジュール171の作成手順を示す概略フローチャートである。S10プラットフォームPL1用のネイティブライブラリ120を作成する。このネイティブライブラリ120は、図8Bに示すようにラッパーAPI172クラスライブラリ内の例えばAPI1~API3を用いている。S11各言語用のラッパークラスライブラリ、すなわちラッパーAPI121及びラッパーAPI122を作成する。図9Aは、制御モジュール171Aの作成手順を示す概略フローチャートである。S20プラットフォームPL2用のネイティブライブラリ120Aを作成する。このネイティブライブラリ120Aは、図9Bに示すように、ラッパーAPI172A内の例えばAPI1A~API3Aを用いている。ラッパーAPI121及びAPI122は既に作成され、制御モジュール171のそれらと共用であるので、さらに作成する必要がない。図5に戻って、PC12はさらに、スマートフォン14のハードウェアに対応したシミュレータ105を備えている。入力装置950及び表示装置951は図4中の会話型入出力装置95を構成している。図5中、拡張アプリケーション78及びWebサービスインターフェイス7A中のサービスプロキシ以外は、開発環境として予め備えられている。本実施例1によれば、複数種の言語のいずれかの拡張アプリケーション78から、対応するラッパーAPI121又は122を介し、これらに共通のネイティブライブラリ120を利用することができるので、ネイティブライブラリ120と複数種の中間言語のプログラムとの連携を効率よく行うことが可能となるという効果を奏する。また、複数種の言語のそれぞれのプログラマが、ネイティブライブラリ120を、ネイティブコードであることを意識せずに該複数種言語のそれぞれの中間言語用拡張ライブラリとして用いることができるという効果を奏する。さらに、ネイティブライブラリ120を複数種の言語で共通に用いることができるので、複数種の言語のそれぞれが選択的に用いられるスマートフォンアプリケーションの開発及び改良が遅延するのを防止することができるという効果を奏する。以上において、本発明の好適な実施例を説明したが、本発明には他にも種々の変形例が含まれ、上記実施例で述べた各構成要素の機能を実現する他の構成を用いたもの、当業者であればこれらの構成又は機能から想到するであろう他の構成も、本発明に含まれる。例えば、ラッパーAPI120、122は、API174の一部であってもよい。換言すれば、ラッパーAPI120、122をAPI174の一部として用いる構成であってもよい。また、中間言語にコンパイルされるオブジェクト指向言語は、上記以外のものであってもよい。ネイティブライブラリはアセンブリ言語を一部又は全部用いて作成したものであってもよい。