2018-01-01から1年間の記事一覧

NCAPI & C++11+ & RX & Qt #11 ~LMBCS対応文字列クラス

前回の続きになります。 ソースコードはこちらで、git clone後にgit checkout v0.0.3をしてください。 QByteArray QStringがワイド文字列(UTF-16)を扱うクラスであるならば、QByteArrayはシングルバイト、マルチバイト文字列を扱うクラスです。ただ、その性…

NCAPI & C++11+ & RX & Qt #10 ~LMBCS

はじめに タイトル、短縮しました。とにかく長かった。 僭越ながら、名著をアップデート 私にとってのバイブル的存在、「Notes/Domino APIプログラミング」(2000年 津田義史著)を改めて紹介します。 Notes/Domino APIプログラミング―C++とSTLによる実践的プ…

Notes C API & C++11+ & ReactiveX & Qt #9 ~RxでNotes C API関数をラップ(実装編)

前回の続きになります。 ソースコードは、いつものようにこちらをgit cloneして、git checkout v0.0.2してください。 chiburusystems.hatenablog.com 実装コード 前回目標にした、「Notes C API関数をRx的にラップする」実装側です。 rx::observable<GetServerLatency::ReturnValues> GetServ</getserverlatency::returnvalues>…

Notes C API & C++11+ & ReactiveX & Qt #8 ~RxでNotes C API関数をラップ

お題「Notes C API関数をReactiveXでラップする」 今回はこのお題について考えます。なお、今回のコードは、前回ご紹介した以下のサイトを使います。 github.com Gitを使ってクローンして、v0.0.2をチェックアウトします。 git clone https://github.com/Chi…

Notes C API & C++11+ & ReactiveX & Qt #7 ~ Qtの翻訳システム(コーディング編)

ソースコードサイトの変更 まず最初に、1つご連絡があります。前回までの公開ソースコードを、訳あって以下のサイトに変更しました。 github.com 前回までの解説に使った改訂前のv0.0.1と、このサイトのv0.0.1は、原則合わせてありますので、連載上は問題な…

Notes C API & C++11+ & ReactiveX & Qt #6 ~ Notes C API関数の基本

前回は、Qtの翻訳機能について少し触れました。今回は、このプログラムで肝となるNotes C API「NSFGetServerLatency」についてお話しします。 v0.0.1のソースコードを実行すると、次のような出力が得られます。 2行目、3行目はAPIがユーザにパスワードの入力…

Notes C API & C++11+ & ReactiveX & Qt #5 ~ Qtの翻訳システム

前回はmain.cppとNotes C APIのアラインメントについてお話ししました。今回はQtのアプリケーションとしての仕組みについて、サクッとご紹介します。 main.cppのmain関数が呼び出された直後に、次のような記述があります。 QCoreApplication app(argc, argv);…

Notes C API & C++11+ & ReactiveX & Qt #4 ~ main.cppとアラインメント

前回に引き続き、以下のソースコードについて説明していきます。 github.com 前回のQMakeのプロジェクトファイルに関するトピックはまだまだ尽きません。言語的な要素も持っていて、ビルトインの変数、関数の他に、カスタム変数、関数を定義することもできま…

Notes C API & C++11+ & ReactiveX & Qt #3

ここでは、チュートリアルとして簡単なコマンドラインアプリを作り、Notes C APIの基礎を勉強していきます。C/C++、C++11以降の仕様、ReactiveX/C++、Qtフレームワークについては、必要に応じて触れていきます。 以降の前提条件として、以下のような要件で進…

Notes C API & C++11+ & ReactiveX & Qt #2

リアクティブ・エクステンション(Reactive Extensions、ReactiveX、RX)は奥が深く、勉強を始めてから日の浅い私もまだまだわからないことだらけです。ですが、初級レベルくらいならある程度書けるようになってきたので、Notes APIを例に、RXを適用するとこん…

Notes C API & C++11+ & ReactiveX & Qt #1

仕事でAngularを使い始めました。Angularは、ReactやVueなどと比較されるSPAフレームワークです。開発にはJavaScript回りがわかればいいのですが、TypeScriptから入ることをお勧めされます。 https://angular.io/ www.typescriptlang.org AngularJS(1.x)から…

W64APIにまたしても!DNParseの落とし穴

いつぞやのNSFItemInfoNext関数に続き、またしてもW64で正常に動かないC APIを発見しました。今回は、DNParse関数です。まず、DNParse関数とはなんぞや?というところから。 DNParse関数の接頭辞、「DN」は「Distinguished Name」の略で、識別名を表します。…

DominoサーバにOAuth2認証機能をアドインする「DOAP」

先日、Facebookページで開発を表明したDominoのOAuth2アドインですが、一部の機能を残して0.1.0-betaバージョンが完成しました。 名称は「DOAP」Domino OAuth2 Providerの略です。 このDOAPは、Dominoにアカウントを持っているユーザが、他のWebサービスから…

NSFItemInfoNext関数を64bit Windows Dominoサーバで使用するとクラッシュする

追記 2019-11-24 記事のリンクを追加しました。 ソースコードにcpp指定をしました。 本編 私が、とあるプロジェクトでDominoサーバのアドインを作ったとき、奇妙な現象に悩まされた。 その現象というのは、NSFItemInfoNextというNotes C APIの関数を使うと、…