2025 02,09 08:23 |
|
× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 |
|
2009 01,29 01:37 |
|
Asynch Inet: MultiByteToWideChar:Error Code:0x57のご連絡を頂いておりますが、手元のWM5,WM6.1(hx4700)では残念ながら再現しませんし、残念ですがソースを眺めても何が起こっているのかわかりません。
X04HT: 発生。 S21HT: ファーム(S21HT_firm_V1_81_881_2_JPN.exe)の更新後発生。 WS011SH: 高速化ツールを起動したままデータを取得しようとすると発生。 という状況です。 何が起こっているのかもう少し状況が知りたいので、MultiByteToWideCharでエラーが発生 した場合、この関数に与えている引数の値を表示するバージョンを作成しました。 調査にご協力頂ける方を募集いたします。 このエラーが出ない方はインストールしないで下さい。面倒なだけです。 インストールしても何もメリットはありません。 1)ここからStockPrice.exeを母艦(PC)にダウンロードしてください。(2009/02/08 配信終了) 2)XPの場合はActiveSync、Vistaの場合は??センター(私はXPを使っています)で接続してください。 3)母艦(PC)でファイルエクスプローラを起動。 4)モバイルデバイスの¥Program Files\StockPriceを開く。 違う場所(SDカード?)にインストールされている場合にはインストールした場所を開きます。 5)オリジナルのStockPrice.exeを適当にStockPrice_org.exeとかリネームしてください。 6)ダウンロードしたStockPrice.exeをそのディレクトリにコピーしてください。 7)スマートフォン(X04HT、S21HT、WS011SH)でStockPriceを起動。 8)更新もしくは編集、新規登録で株式コードを入力して”検索”。 9)MultiByteToWideCharエラーとなったら、表示される内容をすべて教えてください。 ご協力頂けると幸いです。 ケイティ PR |
|
2008 12,21 00:40 |
|
StockPrice 2.1.4をリリースします。 *注 |
|
2008 12,14 17:05 |
|
WInInet API を使ってサイトのコンテンツをダウンロードしてくる場合、リクエスト情報に Accept-Encoding を付加すると gzip (deflate 圧縮に gz ヘッダー情報がついたもの) されて送られてきます。
圧縮ファイルの解凍ツールは沢山あるのですが、Win32プログラムで使える API があまりありません。 zlib を ダウンロードしてきて zlib.h, zconf.h を StockPrice のプロジェクトに加えて使っています。 最初 uncompress が一番簡単そうに思えたので使ってみたのですが DATAERROR -3 が戻るのみでうまく動きません。受け取ったデータをファイルに全部書き出して "aaa.gz" とか名前を付けてPC上で解凍すると見事に解凍出来ました。データが壊れているわけではなさそうです。 uncompress のソースを読み始めると結局は infalte でゴリゴリ書いてあるだけで、自分で書いても同じ事かなとあきらめかけたのですが、ファイル解凍用の gz_open ではななんと inflateInit2 の windowbits 引数で-MAX_WBITSが指定されている事に気付きました。 注意しないといけないところ、はまるところは inflateInit2 はマクロなので実際に呼ばれている API の inflateInit2_ を GetProcessAddress で呼び込まないといけないことです。 かなり添付ソースでは端折って書いてあります。 まじめに汎用として使うには StockPriceでみているサイトから送られる gz ヘッダーはいつも10バイトなので、10バイトスキップ とかしています。本来は可変長のヘッダーのようですから、例えば該当フラッグビットが1ならそのサイズを取り出してサイズ分コメントを読み飛ばすみたいな事が必要です。 また、複数回にわけて解凍する場合には出力バッファがいっぱいになったら。。。とかコードを入れる必要があります。ここでは1回で解凍していますから端折っています。 いつでも動き始めると簡単でなんで。。。なんで。。。ですが、動くようになるまでが大変です。 全然関係無い話ですが、 昔 Unix のポーティングをしていたときに覚えたのですが、zlib のソースを読んでいて思い出しました。 fopen、fread、fwrite といった f 系の関数に渡すファイルポインタって io_stream 構造体のアドレスなんですね。。。 Unix のソースは読んでいて本当に飽きないですよね。大袈裟ですが人類の英知というか、そうか成程へーっ!みたいな感じです。 ソースです。 |
|
2008 12,14 16:02 |
|
2008 12,13 16:53 |
|
StockPrice 2.1.3をリリースします。
Bug Fix と機能追加です。 今回 zlib をサポートします。 ¥Windows¥ZLIB1.DLLがあればサーバーに圧縮したサイトデータを要求するようにします。 zlib1.dll (Ver 1.2.3)は多分WM5/WM6/WM6.1 のデバイスに入っていると思います。 zlib.dll は V1.1.4 なので入っていてもStockPriceでは圧縮フォーマットにしていません。 無い場合と同様にこれまで通りプレーン・テキストでデータを受け取ります。 圧縮フォーマットの採用の目的は転送時間ではなく、パケット量の削減です。 プレーン・テキストで株価取得時に約25kバイト、圧縮(gzip,Inflate)で約7kバイトで送られてきます。 もしデバイスにより zlib のバージョン・ミスマッチのようなエラーが発生するようであればご連絡を頂ければ 対応するように致します。zlib1.dll で Ver 1.2.3 以外が実装されているケースは無い前提で作っています。 *注 ReadMe.txt と ヘルプには記述しましたが、為替の時系列データが3ヶ月間では3ページに分割されている のに気付きました。2ページ目と3ページ目の先頭はそれぞれ前ページ最終データと重複しており、 3ページ目には4日分のデータ(うち先頭データは前ページの最終と重複)なので、あえて56kバイトを取りに行かない事にしました。ご注意下さい。株式は2ページで3ヶ月分なので問題有りません。 変更点は ■ バージョンアップ履歴 V2.1.3 - zlibのサポート - 3ヶ月時系列データ取得時に重複データが1日あるのを修正。 - ”Keyword not found” エラーの修正。(まだ他にもあるかもしれませんが。。。) - StockChart ヘルプの修正。 ダウンロードはここから。(2009/02/03 配信終了) Enjoy! |
|
忍者ブログ [PR] |