ページへ戻る
+ Links
印刷
DLL/PICTURE0/oldlog
::
OSASK計画
osaskwiki
:
DLL
/
PICTURE0
/oldlog
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
Last-modified: 2009-11-17 (火) 00:00:00 (JST) (319d) by ゲスト