スポンサーリンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 既存ソフトの変更を完了 | トップページ | 本体の開発を開始 »

共有ライブラリの開発を開始

今は、Mirror-DTC for Ubuntu Ver1.4.1の開発中で、今回の開発では、Windows版に続いてトランスポーターを追加する予定なのだが、Windows版と同様に、Mirror-DTCサーバーの機能は独立させる事にしたので、共有ライブラリの開発を開始した。

トランスポーターというソフトは、デスクトップ上のウインドウの中から、指定したものをクライアントの画面に表示する様にしつつ、デスクトップからは消してしまうソフト、という事になる。

なので、ここの所、指定したウインドウのキャプチャー方法だとか、そのウインドウをデスクトップから消す方法、みたいな話をしてきていたのだが、キャプチャーした画像をクライアントに転送する方法については書いてきていなかった。

共有ライブラリは、主に、この部分を担当する事になるのだが、Windows版のトランスポーターでも、MCSrvDLL.dllというdllファイルがこの機能を担当しているのだが、Ubuntu版では、libmcsrv.soファイルが担当する事になる予定だ。

作者製ソフトでは、dllを使ったり、共有ライブラリを使ったりする事は、あまり、無かったのだが、Mirror-DTCについては、Windows環境以外で動作させる為に最初に開発したバージョンはJava版で、Java版では、Javaのライブラリでは機能/性能的に使い物にならなかった機能については、JNIライブラリ化していたし、Androidアプリについても、同様に、メインルーチンとなるJavaコードとは別にJNIライブラリを開発してきている。

で、そのJNIライブラリというのは、やはり、Windows環境ではdllファイル、macOS / Ubuntu環境ではsoファイルになっているので、作者的には、dllファイルやsoファイルの開発が初めてという事はないのだが、JNIライブラリとして利用する場合と、普通にdll/soファイルとして利用する場合とでは、呼び出し側の対応が異なったりもする訳だ。

と、言うことなので、作者的には、慣れない作業をしている格好にはなるのだが、今日の時点で、一応、Windows版で使っているMCSrvDLL.dllのソースコードをコピーしてきて、最低限の部分をUbuntu用に書き換えたコードをsoファイルとしてビルドする事には成功し、そのsoファイルの中の関数を、独立した別ソフト環境から、呼び出す事も可能になっている。

なので、共有ライブラリについては、後は、普通に動作する様に、細かい部分を修正して行けば良いだけなので、明日には、普通に使える様になっている事を期待している今日この頃だ。

ちなみに、共有ライブラリというのは、多くのソフトが使う関数群を別のバイナリとしておく事で、それらの関数群を各ソフトに実装するよりも、バイナリの合計サイズを小さくできる、というメリットがある。

と、いうか、普通は、その為に作られるのだが、もう一つのメリットとしては、開発を別々に行える、というモノもある。

つまり、共有ライブラリと、それを使う各ソフトは、普通は、別の開発者が開発する事になるので、それぞれが、他の開発と独立して開発可能になるので、目的とする開発が、比較的スッキリと行える、というのもある。

なので、上記のメリットと照らし合わせれば、作者的には、今の所、Mirror-DTCプロトコルを使った部分をdll/so化してみても、メリットは無いかもしれないのだが、将来的には、このdll/soファイルを使って、別のソフトを開発する事にするかもしれないし、当初の予定通り、これらのインタフェースを公開して、第三者がソフト開発を可能な状態に持っていく事にするかもしれない。

と、言うことなので、今の所、共有ライブラリ化してみても、メリットはない感じなのだが、将来性を鑑みて、Ubuntu版についても、Mirror-DTCプロトコルの利用に関連する関数群については、共有ライブラリ化しておく事にした訳だ。

« 既存ソフトの変更を完了 | トップページ | 本体の開発を開始 »

2019年11月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。

    ポリシーと規約 - Google