スポンサーリンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« ドキュメントを集めたり | トップページ | 何とかなるだろう »

gtkmmを使ってみる

今日は、Ubuntu用のネイティブアプリを作る準備段階として、とりあえず、gtkベースのHelloWorldプログラムを作ってみた。もっとも、実際に使っているのはgtkでは無くてgtkmmだ。gtkmmは、gtkをC++から使えるようにしたラッパーらしい。

何度も書いてきているように、作者が開発してきたWindows用アプリというのは、C++で書かれているのだが、GTK、というか、Linux一般で使われているネイティブ言語は、C言語になる筈だ。

なので、どうしようか、と、思っていたのだが、gtkmmについてのWikipediaを見てみた所、MySQLだとかVMwareも、このgtkmmを使っている、という事になっていたため、多分、大丈夫だろう、という事にした訳だ。

作者が何を気にしているのか、というと、10年くらい前には、LinuxでC++を使うというのは邪道のような感じで、お遊び程度ならともかく、ちゃんとしたアプリを組める状況ではなかったような記憶があるため、開発言語としてC++を使うのは大丈夫だろうか? と、思っていた訳だ。

さらに言うと、.Netを別環境用に移植しているMonoというモノもあるのだが、Monoには.Netにある機能の一部しか実装されていないのでマトモには使えない、というような話もチラホラと耳にする。

つまり、GTKの本道はC言語である事から、C++では、APIのサブセットしか使えず、ドキュメントなんかもいい加減かもしれない、と、思っていた訳なのだ。

しかし、gtkmmの公式サイトを見てみると、一応は、ドキュメントもしっかりしているため、大丈夫そうな感じだったし、MySQLだとかVMwareが使っている、という事になると、メインテナンス的にも、ちゃんとしている筈だ、と、思えた訳だ。

当然のことながら、作者はC言語も使えるのだが、既にあるC++で書かれたプログラムをC言語用に変換するとなると、結構な機械作業が必要になる。このため、出来ることなら、UbuntuでもC++でプログラムは書きたい訳だ。

と、言うことなので、これから暫くは、gtkmm用にプログラムを書いてみる事になる筈なのだが、gtkmmの公式ページにある最初のサンプルプログラムは間違っていて、そこに記述されている通りにソースを作ってビルドすると、実行時にクラッシュする。まあ、そのページを真面目に見ていれば、間違いは判るのだが、作者的には、一抹の不安が過ったり過らなかったりしている。

ちなみに、今はメイン環境がUbuntuになっているので、Webブラウザとしては、Firefoxを使っているのだが、このFirefoxではMirror-DTCのホームページにある補助ドキュメントにある画像が表示されなかったり、フォントサイズが違うので表示が若干乱れたりしていた。

なので、数日前にホームページの内容を微修正したのだが、今日は、MasterReversiのホームページにあるアプレットページを見ようとしたら、Javaが動作しなかった。

このため、色々と調べてFirefoxにJava用のPluginを入れたのだが、そうすると、MasterReversiのアプレットページも表示されるようになったものの、日本語文字列がことごとく化けてしまっていた。

その原因は、MasterReversiのアプレットでは、ShiftJis文字列データからJavaのStringオブジェクトを作成しているのだが、その時に、変換元のコードページをデフォルトにしてあったため、これがマズかったようだ。

このため、今日は、MasterReversiのアプレットも修正しておいたのだが、棋譜表示用のアプレットについては、まだ未修正だ。

何故か、というと、JavaのソースファイルはShiftJisで書かれているのだが、そのままだと、Ubuntu上にあるJavaコンパイラがエラー扱いにしてしまうため、全てのファイルを、まずは、UTF-8に変換しなければならない。これが面倒な訳だ。

= この記事に関連する公開中ソフト =

AG-ムービーカッター for Ubuntu 12.04LTS

AG-ムービーカッター for Ubuntu12.04LTS

(2013/12/07追加)

« ドキュメントを集めたり | トップページ | 何とかなるだろう »

トラックバック


この記事へのトラックバック一覧です: gtkmmを使ってみる:

« ドキュメントを集めたり | トップページ | 何とかなるだろう »

2020年4月
      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