明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 9540|回复: 32

转帖 打包图标为dll 超级简单教程

  [复制链接]
发表于 2011-8-30 09:43:21 | 显示全部楼层 |阅读模式
本帖最后由 xshrimp 于 2011-8-30 09:50 编辑

原作者 lynfr8
只需要借助一个很容易上手的绿色小软件 IconJack32
以图代述:
1.运行IconJack32

2.准备你需要调用的图标,导入

3.导入后也可升序降序排列或删除图标

4.导出

5.保存为dll文件

好了,大功告成!


菜单文件对应dll文件,是不是很简单?
下载



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2012-5-21 09:01:08 | 显示全部楼层
本帖最后由 linshiyin2 于 2012-5-21 09:12 编辑

转帖,高人的
现在以建立“EBGSoft.dll”文件作为示例:
      1.建立一个目录(如“bmp”),将图标文件全部放入该目录。注意,图标文件应为位图文件(*.bmp)。
      2.利用“EBG_ResourceTool.exe”创建资源文件“EBGSoft.rc”及“EBGSoft.res”。
        注意:要想创建成功,必须在电脑的C盘或D盘安装有全功能的VB程序(安装在默认路径)。!!!!
      3.启动VB,选择菜单:文件/新建工程/选择“ActiveX DLL”/确定。
      4.在右侧的“工程”窗口中的空白处,点击鼠标右键,选择菜单:添加/添加文件/选择你刚才创建的资源文件“EBGSoft.res”/打开。
      5.选择菜单:文件/工程另存为,输入文件名,这里将所有的文件名均保存为“EBGSoft”(取默认扩展名)。
      6.选择菜单:文件/生成EBGSoft.dll
      搞定!

      以后如果图标有扩充,只需:
      1.重新用“EBG_ResourceTool.exe”创建资源文件“EBGSoft.rc”及“EBGSoft.res”。
      2.双击“EBGSoft.vbp”启动VB,选择菜单:文件/生成EBGSoft.dll
      搞定!

      位图资源DLL(动态连结库)用于保存工具栏、菜单所使用的位图。
      AutoCAD要访问位图资源,需要满足以下三个条件。
      1、DLL文件名必须与相关联的菜单文件名相同。
      2、DLL的资源必须命名,而不是按索引编号(因为前面制作资源时,每个位图都有名字,所以此条满足)。
      3、DLL文件必须与调用它的菜单文件位于相同的目录中。

      也就是说如果菜单名是“EBGSoft.mnu”,则DLL文件名必须是“EBGSoft.dll”,它们必须在同一个目录内。
      如果在创建资源文件“EBGSoft.rc”时,在bmp目录中有"ebg_XMXXCS.bmp"位图文件,则
      在EBGSoft.mnu中的访问示例如下:
      ID_XMXXCS [_Button("项目信息初始化", "ebg_XMXXCS", "ebg_XMXXCS")]^C^C_EBG_XMXXCS
      注意,访问时只能写文件名"ebg_XMXXCS",不要加扩展名。
      附件
         EBG_ResourceTool.exe (28 KB)

      位图资源DLL(动态连结库)用于保存工具栏、菜单所使用的位图。
      AutoCAD要访问位图资源,需要满足以下三个条件。
      1、DLL文件名必须与相关联的菜单文件名相同。
      2、DLL的资源必须命名,而不是按索引编号(因为前面制作资源时,每个位图都有名字,所以此条满足)。
      3、DLL文件必须与调用它的菜单文件位于相同的目录中。

      也就是说如果菜单名是“EBGSoft.mnu”,则DLL文件名必须是“EBGSoft.dll”,它们必须在同一个目录内。
      如果在创建资源文件“EBGSoft.rc”时,在bmp目录中有"ebg_XMXXCS.bmp"位图文件,则
      在EBGSoft.mnu中的访问示例如下:
      ID_XMXXCS [_Button("项目信息初始化", "ebg_XMXXCS", "ebg_XMXXCS")]^C^C_EBG_XMXXCS
      注意,访问时只能写文件名"ebg_XMXXCS",不要加扩展名。

回复 支持 1 反对 0

使用道具 举报

发表于 2011-8-30 12:19:18 | 显示全部楼层
做个记号
发表于 2011-8-30 14:05:40 | 显示全部楼层
正需要这样的软件,下载先,谢谢楼主
发表于 2011-8-30 14:23:56 | 显示全部楼层
请问图标打包成dll文件后,如何调用?
发表于 2011-8-30 16:08:15 | 显示全部楼层
试了下,不能打包BMP文件,可以打包ico,但cad图标文件都是bmp啊,不知道如何处理
发表于 2011-8-30 16:25:30 | 显示全部楼层
感谢楼主的热心,收下了!
发表于 2011-8-30 18:56:27 | 显示全部楼层
应该还有一个更给力的软件,但时间长想不起来了。

点评

这岂不是废话  发表于 2014-9-9 08:50
发表于 2011-8-31 21:45:45 | 显示全部楼层
bmp无法打包??遗憾啊
发表于 2011-9-4 08:16:46 | 显示全部楼层
1、dll文件名和mns名相同(Sur2004.Dll  Sur2004.mns)

2、纯资源动态库的建立:
   运行VB 新建Activex DLL,打开菜单"外接程序/外接程序管理器" 加载 VB6 资源编辑器
点击工具栏的"VB资源编辑器"来打开"VB资源编辑器",再点击"添加位图..."添加.BMP图片,
把所有位图作为资源加到项目;注意:各位图资源的ID用字符串,
(如 101 改为 Pjs,102 改为 Pmt)不要用整形ID;然后编译形成资源DLL。

3、菜单文件定义:
   定义的工具条中的位图名称用在DLL中对应的位图字符串ID。
ID_Pmjs     [_Button("剖面计算", "Pjs", "Pjs")]^C^C_PmJs
ID_Hpmt     [_Button("绘剖面图", "Pmt", "Pmt")]^C^C_HuiPMT

4、把DLL和MNS文件放在一起就可以了。
   当CAD加载菜单文件时会查找与菜单文件同名的DLL一并加载。

点评

俺也喜欢这样做  发表于 2012-7-12 23:33
发表于 2012-2-4 08:23:43 | 显示全部楼层
pmq 发表于 2011-9-4 08:16
1、dll文件名和mns名相同(Sur2004.Dll  Sur2004.mns)

2、纯资源动态库的建立:

如果CAD是2006以上的版本,由于菜单文件默认加载的是CUI格式的文件,所以必须先MENU命令,生成ACAD.CUI
修改的菜单效果才可以看得到。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-12-23 16:39 , Processed in 0.206030 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表