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