2017-03-01から1ヶ月間の記事一覧

伝説のツール「NotesPeek」をQtでリメイクする(その1)

NotesPeek。ご存じですか。 NotesPeekは、Notesのネットワークパス、データベース、文書、フィールド、リッチテキスト構造といった、Notesのあらゆる階層をインスペクトできるツールです。Notes/Domino APIプログラミング―C++とSTLによる実践的プログラミン…

NotesとQtでWindows、Mac OS X、Ubuntuのデスクトップアプリ(その11 - 実行・完結編)

それでは、前回までのライブラリを使用して、一気にデスクトップアプリ「IntroQt」を作ります。 まず、メインソースコードです。 // main.cpp #include "dialog.h" #include <QApplication> #include <lmbcs.h> int main(int argc, char *argv[]) { ntlx::Status status = NotesInit</lmbcs.h></qapplication>…

NotesとQtでWindows、Mac OS X、Ubuntuのデスクトップアプリ(その10 - 共有ライブラリコンパイル・補足編)

前回は、MacOSX上でコーディングした共有ライブラリのコンパイルを、Qt Creatorで行う場合のqmakeプロジェクトファイルの書き方と、個別環境で指定する「追加の引数」についてお伝えしました。 Qt Creatorのビルド設定について、もう少し補足します。 追加の…

NotesとQtでWindows、Mac OS X、Ubuntuのデスクトップアプリ(その9 - 共有ライブラリコンパイル編)

ここまでをおさらいします。 最初に、Statusクラス(STATUS値のラッパークラス)を作成しました。 次に、Lmbcsクラス(LMBCS文字列のラッパークラス)をNLS版で作成しました。 最後に、Databaseクラス(NSFファイルのラッパークラス)を、必要最低限の実装で作成し…

NotesとQtでWindows、Mac OS X、Ubuntuのデスクトップアプリ(その8 - データベース・基本クラス編)

前回紹介したデータベース関連のAPIを踏まえて、Databaseクラスを定義していきます。 方針としては、Notes/Domino APIプログラミング―C++とSTLによる実践的プログラミングを踏襲して、コピー不可のクラスとします。 <database.h> #ifndef NTLX_DATABASE_H #define NTLX_D</database.h>…

NotesとQtでWindows、Mac OS X、Ubuntuのデスクトップアプリ(その7 - データベース・基本編)

Notesデータベースは、Note(文書)の集合体です。文書はアイテムの集合体で、アイテムの中でもリッチテキストアイテムはコンポジットデータの集合体です。Notesデータにアクセスするには、何はなくともデータベースにアクセスする必要があります。データベー…

NotesとQtでWindows、Mac OS X、Ubuntuのデスクトップアプリ(その6 - LMBCS変換・応用編)

LMBCSを扱うにあたり、前回のコードでは、LMBCSの区切り位置を計測できずにいました。 APIを詳しく見ていくと、LMBCS文字列を含む言語サービスが用意されています。ヘッダファイルnls.hで提供されるNational Language Services(NLS)には、多国語のキャラクタ…

NotesとQtでWindows、Mac OS X、Ubuntuのデスクトップアプリ(その5 - LMBCS変換・基本編)

それでは、LMBCSをラップしたクラス、Lmbcsを定義していきます。 <ntlx_global.h> #ifndef NTLX_GLOBAL_H #define NTLX_GLOBAL_H #include <QtCore/qglobal.h> #if defined(NTLX_LIBRARY) # define NTLXSHARED_EXPORT Q_DECL_EXPORT #else # define NTLXSHARED_EXPORT Q_DECL_IMPORT #endif #e</qtcore/qglobal.h></ntlx_global.h>…

NotesとQtでWindows、Mac OS X、Ubuntuのデスクトップアプリ(その4 - LMBCS概略編)

次はLMBCSです。 LMBCS(リンビックス、Lotus Multi-Byte Character Set)はNotes固有の文字コードセットで、STATUSの次にラッパークラスを用意したい概念です。 日本語以外の知識を持ち合わせていないのですが、日本語のみで考えればLMBCSの日本語はシフトJIS…

NotesとQtでWindows、Mac OS X、Ubuntuのデスクトップアプリ(その3 - STATUS編)

Notes C APIにおけるSTATUS型は、ほとんどの関数の戻り値となっています。関数の実行結果が成功したのか、失敗したのか、判断する材料となります。 「Notes/Domino APIプログラミング〜」では、std::exceptionを拡張した例外処理として実装しています。私も…

NotesとQtでWindows、Mac OS X、Ubuntuのデスクトップアプリ(その2 - 共有ライブラリ・作成編)

これからの操作は、基本的にMac OS Xを中心に話を進めます。WindowsとUbuntuについては、そのたびに補足していきます。 Qt Creatorで、共有ライブラリを作成します。 選択ボタンをクリックすると、次に進みます。 (画像のエラーはサンプルなので気になさらず…

NotesとQtでWindows、Mac OS X、Ubuntuのデスクトップアプリ(その1 - 環境編)

Notes/Dominoは元々クロスプラットフォームなグループウェアです。 QtはC++ベースのGUIアプリケーション開発フレームワークで、Windows、Mac、Linuxなどのプラットフォームで使用できます。 ここでは、この2つを組み合わせてみようという話です。 環境をまと…