ページへ戻る

− Links

 印刷 

DLL​/PICTURE0​/oldlog :: OSASK計画

osaskwiki:DLL/PICTURE0/oldlog

DLL​/PICTURE0[1]のこめんと欄の過去ログ

  • 単独実行できるようにしたい場合、オフセット0x48をコールするようにするとbim2bin3のランタイムとカブらなくていい感じです。 -- I.Tak.[2] 2003-09-27 (土) 21:28:46
  • 僕はこれからDLLの骨格と、このDLLを使った汎用画像viewerを書きます。 -- K[3] 2003-09-27 (土) 21:29:16
  • はい!BMP担当。ところでtest049にはlib_execcmd相当の相当の関数しかなくて、execcmd0やexeccmd1みたいのが無いのはなんでですか? -- I.Tak.[2] 2003-09-27 (土) 21:31:37
  • なるほど・・・。そのほうがいいかな?じゃあとりあえず、呼び出しアドレスを0x0048に変更。将来的には単独起動で汎用画像viewerってことで。どっちにしてもDLL利用のサンプルは必要なので、DLLを使った汎用画像viewerは書きます。 -- K[3] 2003-09-27 (土) 21:32:37
  • execcmd0やexeccmd1相当のものは、あのサンプルに入らなかったのでサボりました。まあ、あそこまで作っておけば誰でも作れるんじゃないかなー、と。execcmd1相当のものはおそらく不要と思われますが、execmd0相当のものはほしいですね。多分今回いっしょに作ります。 -- K[3] 2003-09-27 (土) 21:37:15
  • I.Tak.さんはやいなあ。じゃあ、BMPはお任せします。サンプルは32bit-gboxにする予定なので、そっちを先に作ってもらえると嬉しいです。 -- K[3] 2003-09-27 (土) 21:37:56
  • jpegができるかな…fgetcなんかをマクロにすれば小変更であがりそう…とりあえずチャレンジ -- くーみん編集[4] 2003-09-27 (土) 21:46:40
  • とりあえず任せた。>JPEG -- K[3] 2003-09-27 (土) 22:00:53
  • 展開先バッファの大きさもないとバッファオーバーフローします。 -- I.Tak.[2] 2003-09-27 (土) 22:11:11
  • ええと、それはdecode0_BMP()のことですね?それなら心配はいりません。ファンクション0x0004を呼ぶときは呼び出し側が事前に責任をもってファンション0x0002でxsizeとysizeを確認しています。そして、バッファのサイズが、(xsize * bpp / 8 + skip) * ysizeあるときにしか呼び出しません。 -- K[3] 2003-09-27 (土) 22:24:48
  • もっと多様な展開をしたいときは、0x0005以降のファンクションを使います。でもどんな内容にするかは僕は決めませんので、みんなで相談して決めてください。 -- K[3] 2003-09-27 (土) 22:26:20
  • なお、ファンクション0x0003はDLLバージョンファンクションの予定で空けてあります。バージョン機能が必要になるかどうかも分かりませんが。今はシェルがDLLを積極的にサポートしてくれないので、バージョンサポートが必要かもしれません。・・・とちょっと思ったから空けておきました。 -- K[3] 2003-09-27 (土) 22:31:16
  • とりあえず今のところは、バッファコードの0x7fffをとって、それで判定していいです。もちろん、ちゃんと区別できるならそれにこしたことはありませんが。 -- K[3] 2003-09-27 (土) 22:34:21
  • くーみんさん、JPEGデコーダをstatic変数を使わずに書ける? 急に心配になりました・・・。 -- K[3] 2003-09-27 (土) 22:47:16
  • みなさんごめんなさい。infoにもdecodeにもテンポラリとして使えるenvを渡し忘れていました。64KBのうちの最初の32バイト以外は自由に使えますので、使ってください。関数の引数が変わったのでご注意ください。ご迷惑をおかけしました。 -- K[3] 2003-09-27 (土) 23:06:37
  • mallocは使ってませんし…もともとのjpeglsにもstatic変数ないですよね…実はもう完成した感じなんですが -- くーみん編集[4] 2003-09-27 (土) 23:08:27
  • ごめんなさい、staticありましたね、必要ないので(jpegls内で使われていないので)全てコメントアウトしたんです。 -- くーみん編集[4] 2003-09-27 (土) 23:12:35
  • static変数が本当にないんですか? ええと確認すると、一番最初のジグザグテーブルはstatic変数ですよ? -- K[3] 2003-09-27 (土) 23:15:35
  • それと(たぶん全部消しただろうとは思いますが)、文字定数も全てstatic変数です。あとこれは確認しないと分からないのですが、倍精度、単精度定数もstatic変数扱いされることがあります。まあなんであれ、dataセクションがなければ(あっても0バイトなら)、何の問題もないです。 -- K[3] 2003-09-27 (土) 23:18:49
  • int zigzag_table[]…でもstaticでしたっけ?そしたら、ポインタ渡すように書きなおします。 -- くーみん編集[4] 2003-09-27 (土) 23:19:25
  • C言語的にはそういうのはstaticといわないのですが、静的変数であることは事実で、だからここではstatic変数と呼んでいます。>staticでないグローバル変数 -- K[3] 2003-09-27 (土) 23:25:09
  • 4関数を含まないPICTURE0.BIN(単独起動もありうるので.BINです)は、509バイトになりました。今は単独起動するとダミーのウィンドウが出てきて、それでおしまいです。そのうちkjpegls.binみたいにセレクタが出てくるようにします。 -- K[3] 2003-09-27 (土) 23:29:17
  • asファイルのどっかに.dataと書かれていたらいけないわけですね。switchはifにして解決しましたが、zigzagは変数の羅列にすればいいのでしょうか? -- くーみん編集[4] 2003-09-27 (土) 23:34:12
  • KJPEGLSから単独起動用のルーチンを借りてくることにします。24:00までにはアップロードしたいです。まにあうかな。 -- K[3] 2003-09-27 (土) 23:37:25
  • そう、変数代入の羅列で乗り切れます。とりあえずはそれで解決してください。最初だから動けばそれで十分です。 -- K[3] 2003-09-27 (土) 23:38:26
  • 解決しました。 -- くーみん編集[4] 2003-09-27 (土) 23:47:11
  • ファイルアップしておきます。上の会話は必要なければ消していいでしょうか? -- くーみん編集[4] 2003-09-28 (日) 00:00:14
  • ううう、間に合わなかった・・・。あと15分くらいかな。 -- K[3] 2003-09-28 (日) 00:00:54
  • とりあえず、1日くらいは取っておいてください。>会話 -- K[3] 2003-09-28 (日) 00:01:40
  • struct DLL_STRPICENV *env,をつけてアップしなおしました -- くーみん編集[4] 2003-09-28 (日) 00:03:12
  • 単独起動可能な(単独起動時は汎用viewerの)やつができました。 http://osask.ne.nu/test050a.lzh[5] (4.00KB) Makefileにjpeg_dll.objを書き足してからmakeして、僕のほうにもくーみんさんのほうにもバグがなければ、JPEGビュワーにはなるはずです。ああ、これだけじゃだめだ。cmd_info()のところで、BMPの関数を呼ばないように、ifとその直後のgotoをコメントアウトしてください。 -- K[3] 2003-09-28 (日) 00:17:48
  • 僕もこれから実験してみます。>jpeg_dll.c -- K[3] 2003-09-28 (日) 00:18:22
  • DLL_STRPICENVの警告がうるさいので、 struct DLL_STRPICENV { int work[16384]; } と入れるといいと思います。>jpeg_dll.c これでとりあえず黙ります。 -- K[3] 2003-09-28 (日) 00:25:36
  • 動いたんですか?これから睡眠です -- くーみん編集[4] 2003-09-28 (日) 00:29:00
  • "chendct.c"っていうのはどこにあるんでしょうか? -- K[3] 2003-09-28 (日) 00:29:47
  • jpeglsの中にあったやつです、わからない人もいそうなのでアップします -- くーみん編集[4] 2003-09-28 (日) 00:31:50
  • やっとリンクできた・・・。僕のソースのviewer.cの void OsaskMain() は void OsaskMain0() のミスでした。 -- K[3] 2003-09-28 (日) 00:40:16
  • decode errorになりますよ。どんな値を返しているんだろう・・・。 -- K[3] 2003-09-28 (日) 00:45:12
  • decode0は成功したら0だよー。 -- K[3] 2003-09-28 (日) 00:46:03
  • どっちのバグなのかはっきりしませんが、最後までは動きません。とりあえずinfoまでは問題ありません。>jpeg_dll.c そこから先はうまくいきません。構造体JPEGのサイズが64KBを上回っているのかな・・・。 -- K[3] 2003-09-28 (日) 01:00:47
  • 動いたよー。 http://osask.ne.nu/test050b.lzh[6] (15.0KB) -- K[3] 2003-09-28 (日) 01:13:10
  • 明日になったら(って今日だけど)、単独起動ではなくDLLとして動かしてみた場合を実験したいと思います。くーみんさん、どうもありがとう。 -- K[3] 2003-09-28 (日) 01:21:34

Last-modified: 2009-11-17 (火) 00:00:00 (JST) (103d) by ゲスト