jianliulin 发表于 2011-3-2 08:59:00

原帖由 zxw 于 2011-3-2 08:50 发表 http://bbs.wuyou.net/images/common/back.gif
嗯,好久不见j大了。支持!

对了,文件夹打包在注册表中用这个似乎更准确:
HKEY_CLASSES_ROOT\Directory\shell

早已经根据你在burgloader.com 上的提示修正了

Plantsoot 发表于 2011-3-2 09:24:28

回复 #570 chenall 的帖子

源代码已经下载学习了。
Chenall兄要动手写GUI程序也是小菜一碟,可能是对GUI没什么兴趣吧。

chenall 发表于 2011-3-2 09:41:02

原帖由 Plantsoot 于 2011-3-2 09:24 发表 http://bbs.wuyou.net/images/common/back.gif
源代码已经下载学习了。
Chenall兄要动手写GUI程序也是小菜一碟,可能是对GUI没什么兴趣吧。

呵呵,我还没有用C写过GUI程序,只有以前很早用VB写过一个那个HAL选择程序。

你们都对GUI程序比较熟悉,不妨整一个出来让我研究学习一下,嘻嘻。对于图形编程我还没有入门。

从简单的程序开始学比较容易,其实我也是挺懒的。

jianliulin 发表于 2011-3-2 11:11:22

原帖由 chenall 于 2011-3-1 17:44 发表 http://bbs.wuyou.net/images/common/back.gif
单个模块文件的大小不能超过40KB。如果有超过的可以用GZ压一下应该就行了。

外部命令的文件好像都比较“结实” ,用gzip压缩后也少不了多少,单个模块的大小能否调大点?
chkpcifat 两个打包后15K,gzip压缩后还有13k,这样打包不了几个就超额了,

zxw 发表于 2011-3-2 11:16:36

嘻,调大到500K就理想了。

Plantsoot 发表于 2011-3-2 11:23:54

原帖由 jianliulin 于 2011-3-2 11:11 发表 http://bbs.wuyou.net/images/common/back.gif


外部命令的文件好像都比较“结实” ,用gzip压缩后也少不了多少,单个模块的大小能否调大点?
chkpcifat 两个打包后15K,gzip压缩后还有13k,这样打包不了几个就超额了,

外部命令单个文件不超过40K,GRUB4DOS.MOD可以超过40K。相当于打包了。
代码中没对GRUB4DOS.MOD限制。
但是如果改成GUI版,把程序修改一下,变成一个打包工具了。这个时候就有体积太大的问题了。

不知道我分析的对不对。

刚才我想当然了,实际测试参数可以超过9个。

[ 本帖最后由 Plantsoot 于 2011-3-2 11:47 编辑 ]

chenall 发表于 2011-3-2 11:41:55

嗯,只是限制单个命令文件不超过40K。

可以自己修改源码取消这个限制。

另外还有一个GRUB4DOS的限制,insmod使用了0xF0000字节内存。
即所有要加载到内存的模块解压后的总大小不可以超过0xf0000。超过了后面的就会加载失败了。

[ 本帖最后由 chenall 于 2011-3-2 11:45 编辑 ]

Plantsoot 发表于 2011-3-2 11:51:45

回复 #577 chenall 的帖子

Grub4dos_Ubuntu 是不是没图形界面?
鼓捣半天也不知道怎么进图形界面。

Windows下msys编译的外部命令grub下无法运行。

chenall 发表于 2011-3-2 13:09:00

嗯,就是没有图形界面。。
只是命令行的。

外部命令目前只能在linux下编译。

jianliulin 发表于 2011-3-2 13:22:39

to chenall
   有没有什么标记可以判断某个文件是否是grub4dos 的外部命令文件?

chenall 发表于 2011-3-2 14:16:18

原帖由 jianliulin 于 2011-3-2 13:22 发表 http://bbs.wuyou.net/images/common/back.gif
to chenall
   有没有什么标记可以判断某个文件是否是grub4dos 的外部命令文件?
grub4dos的外部命令文件有以下标志

文件未尾肯定是以下8个字节
05 18 05 03 BA A7 BA BC

jianliulin 发表于 2011-3-2 14:53:17

原帖由 chenall 于 2011-3-2 14:16 发表 http://bbs.wuyou.net/images/common/back.gif

grub4dos的外部命令文件有以下标志

文件未尾肯定是以下8个字节
05 18 05 03 BA A7 BA BC


http://grubutils.googlecode.com/files/fat-2010-12-30.zip 这个外部命令末尾就不是以上字符结束

zhaohj 发表于 2011-3-2 15:03:18

fat命令除外,fat文件找不到特殊标志
只找到文件未尾最后2个字节是
00 00

chenall 发表于 2011-3-2 15:22:44

因为经过GZ压缩过了,,,用GZIP解压后肯定有。

chenall 发表于 2011-3-2 15:25:42

这个fat.mod是使用makemod生成的嗎?
擴展名為.mod的必須使用makemod生成,否則是不行的。。

jianliulin 发表于 2011-3-2 15:26:52

原帖由 chenall 于 2011-3-2 15:22 发表 http://bbs.wuyou.net/images/common/back.gif
因为经过GZ压缩过了,,,用GZIP解压后肯定有。

原来这样,怪不得刚才打包fat后加载失败,fat是早已经压缩过的

[ 本帖最后由 jianliulin 于 2011-3-2 17:07 编辑 ]

zhaohj 发表于 2011-3-2 15:33:16

压缩过的也没关系,下面的fat已经gz压缩,用makemod fat生成改名为fat.mod

chenall 发表于 2011-3-2 15:33:33

因為FAT比較大,所以在编译完成后就顺便压缩了一下,其它的命令都是没有压缩的。

jianliulin 发表于 2011-3-2 15:33:54

原帖由 chenall 于 2011-3-2 15:25 发表 http://bbs.wuyou.net/images/common/back.gif
这个fat.mod是使用makemod生成的嗎?
擴展名為.mod的必須使用makemod生成,否則是不行的。。


问题找到了,是因为我打包时候再次gzip压缩了fat模块造成的,makmod把外部命令合在一个文件,我用delphi实现makmod功能,且合并前先判断是否是外面命令文件并gzip压缩,

现在ok了:


[ 本帖最后由 jianliulin 于 2011-3-2 15:39 编辑 ]

zhaohj 发表于 2011-3-2 15:40:36

可以这样,先不管外部命令是否GZ压缩,生成mod后再把这个mod用gz压缩

jianliulin 发表于 2011-3-2 15:48:56

打包前改为以下判断:
先检查是否是标准的外部命令,若不是则试图解压后判断,若还不是或gzip解压失败则抛弃此文件,继续打包下一个

[ 本帖最后由 jianliulin 于 2011-3-3 11:40 编辑 ]

Plantsoot 发表于 2011-3-2 20:58:10

回复 #591 jianliulin 的帖子

我倒是偏向于先判断是否是gzip压缩文件,如果是gzip压缩过的也不解压到磁盘,而是解压到Stream,再读Stream中的外部命令标志,这样操作就不需要在磁盘上写临时文件。

我还没写,不知道这样好不好。

zxw 发表于 2011-3-2 22:44:59

@ jianliulin:
批处理也应该可以打包吧

看了一下,新版新增了一些功能,在线更新grldr,较为贴心!

[ 本帖最后由 zxw 于 2011-3-2 22:49 编辑 ]

chenall 发表于 2011-3-3 09:03:29

首先判断文件头

如果是GZIP那前两个字节的值会是以下其中一样(现在只要判断第一个就可以了)
#define GZIP_HDR_LE      0x8B1F
#define OLD_GZIP_HDR_LE0x9E1F
若是GZ文件就解压,然后继续。

如果前面的4个字节的值是 0x54414221   //!BAT
则认为是批处理文件。

如果文件尾是GRUB4DOS的可执行文件签名,就认为是外部命令,否则非法。

chenall 发表于 2011-3-3 09:08:52

另外更新到最新版本,目前好像是按最近的日期依次查找的,这样如果长时间没有更新则可能要查找挺久的。

建议使用RSS来获取
RSS地址.
http://code.google.com/feeds/p/grub4dos-chenall/downloads/basic

zhaohj 发表于 2011-3-3 09:48:40

批处理也可以打包进MOD吗?

jianliulin 发表于 2011-3-3 10:01:36

原帖由 chenall 于 2011-3-3 09:08 发表 http://bbs.wuyou.net/images/common/back.gif
另外更新到最新版本,目前好像是按最近的日期依次查找的,这样如果长时间没有更新则可能要查找挺久的。

建议使用RSS来获取
RSS地址.
http://code.google.com/feeds/p/grub4dos-chenall/downloads/basic

有这个连接太好了,不知道还有这个东西,呵呵!!!

chenall 发表于 2011-3-3 10:53:34

把批处理当成一个外部命令来处理就行了。

jianliulin 发表于 2011-3-3 11:40:31

原帖由 zxw 于 2011-3-2 22:44 发表 http://bbs.wuyou.net/images/common/back.gif
@ jianliulin:
批处理也应该可以打包吧


原帖由 chenall 于 2011-3-3 09:08 发表 http://bbs.wuyou.net/images/common/back.gif
另外更新到最新版本,目前好像是按最近的日期依次查找的,这样如果长时间没有更新则可能要查找挺久的。

建议使用RSS来获取
RSS地址.
http://code.google.com/feeds/p/grub4dos-chenall/downloads/basic


1.添加了对批处理的判断
2.获取grldr版本改为解析rss文件

[ 本帖最后由 jianliulin 于 2011-3-14 16:32 编辑 ]

zxw 发表于 2011-3-3 11:50:28

原帖由 jianliulin 于 2011-3-3 11:40 发表 http://bbs.wuyou.net/images/common/back.gif

1.添加了对批处理的判断
2.获取grldr版本改为解析rss文件
新版很好,测试正常。
对了,获取的grub4dos临时保存在什么地方?
页: 10 11 12 13 14 15 16 17 18 19 [20] 21 22 23 24 25 26 27 28 29
查看完整版本: GRUB4DOS更新建议、bug反馈专帖