他の通信をパケットキャプチャしてみるとWordCountが12=24Byteしかない。1バイトどこいったー?試しにきにせず26Byteで送ってみたら見事エラーでございます・・・。flagを使う時にはSecurityBlobLengthを使えって書いてあった。・・・といった具合に仕様書読むにもコツが必要な模様。Windows7とNAS相手にツリー一覧取得までは出来たので、頑張ればなんとかなるかなー。面倒なのはツリー一覧取得するところだったっぽい。エラー処理とか、ネゴシエーションやらないと実用的には使えないと思うので作業量は多そうですが。時間かかる要素その2は、SMB通信に使うNTLMの暗号化をどうするか。外部ライブラリ使って認証が通ることは確認しましたが、ここも自前で実装するとなると読まなければならない仕様書がまた増えて面倒くさい。こちらの方が内容はある程度クリアなので実装することは出来そうですが、まっとうにやったら時間かかりそうです。まっとうじゃない方法探します。NTLMもUIWebViewでは使えるので、API公開してくれたらいいのに・・・。ComicGlassへはうまく出来たら実装します。追記:だいぶ分かってきました。上記記述にいくつか間違いがあったので一応訂正。ファイルのリードについては見ていた資料が古かったようで、新しい資料にはOffsetの上位バイトのフィールドがありました。(SMB_COM_READ_ANDX==0xeE最後の4バイト,Optinal)よって2GBを超えるファイルもオフセット付で扱えます。TimeoutがTimeout_or_MaxCountHighになっており、ファイルを読む場合はMaxCountHighとして扱うように変わってました。ネゴシエーションの時に対応非対応を設定できるようです。(しかしWindowsXPの通信見てみると使ってない・・・)ときおり出てくるDataOffsetとかの意味がわかって受信データのpaddingサイズ不要が要らないことがわかりました。-b;みたいな書き方を見かけることがあります。(というか意識せずに自分でも書いていることが・・・)ちょっと話は変わって、絶対値計算に条件分岐が必要だと思いますか?答えは環境依存、、ということになりますが、大抵の環境では条件分岐不要です。現代の多くの環境においてはabs()関数を使えば関数呼び出しはインライン展開された上に分岐なしの絶対値計算コードが出力されます。気にせずabs()を使ってOK。abs(b);というプログラムをコンパイルした結果は以下のような感じになりました。3命令、しかも分岐なし。eax,edxCDQが見慣れない感じですが、CDQ命令はEAXレジスタの符号をEDXレジスタのすべてのビット位置にコピーする便利命令です。C言語風に書くと以下のような感じでしょうか。標準関数は自分で再実装せず、ありがたくそのまま使え。22:24掲示板で擬似カラーフィルタを実装してほしいというご要望があったので実装してみました。やりかたは濃淡の応じて色を割り当てているだけです。いわゆるPseudo-color技術ですね。ポイントは漫画の着色にどのような色を使うかということですが、どうやら、暗い色を青系統、明るい色を茶系にすると人が自然に見えるようです。いうわけで擬似4色刷りのような感じになります。すごくうまくいく場合と、そうでもない場合があるのですが、それは画像次第ですね。著作権的にOKな良いサンプルがなかったのですが、一例としてはこんな画像になります。漫画onWeb)元からカラーの画像に適用してしまうと色味がおかしくなってしまいます。そこでページのモノクロ/カラー判定アルゴリズムも開発しました(ってそんな大げさなものではないですが)画像中の代表画素(1024画素)を使ってカラー判定する軽量アルゴです。擬似カラー部分も含めてほとんどストレスない速度で動くはず。このフィルタはたぶん次のバージョンに実装しますのでお楽しみに。次のバージョンでは以下の不具合にも対処します(今してます・・・)・縦長すぎる画像で縦横比がおかしくなる・リモートファイルの順序がソートされていない・ストリーミングモードでRARの順序がおかしい履歴、リモートフォルダのショートカットも実装中です。バグがまだ多数あるので先にそちらの修正版をリリースするかもしれませんが、どちらにしても近日中・・・の予定です。