RES文件都是把资源放在一个EXE文件中,这样将会变得很庞大,
也不方便修改(虽然有修改软件,但总不如单个替换文件方便)
最可恶的是只能有一个RES文件。
我希望能把所有资源集中在一个外部文件中,并且是可以替换的(但却是不可缺的)
为了保持兼容,及多程序共享,当然不能用自定义文件格式。
好像,以前有专门放资源的动态链接库?(与程序版本无关的那种)请问,如何把资源分散在不同文件中?
也不方便修改(虽然有修改软件,但总不如单个替换文件方便)
最可恶的是只能有一个RES文件。
我希望能把所有资源集中在一个外部文件中,并且是可以替换的(但却是不可缺的)
为了保持兼容,及多程序共享,当然不能用自定义文件格式。
好像,以前有专门放资源的动态链接库?(与程序版本无关的那种)请问,如何把资源分散在不同文件中?
用LoadLibrary加载dll
再用资源API去读取这叫做资源dll技术
菜单:文件->新建
工程类型中选择“Win32 Dynamic-Link Library”,确定
然后点完成
菜单:插入->资源
顺便选一种,确定
再点保存,这样会弹出对话框让你选择保存资源文件
切换到“FileView”页面
右击鼠标,选择“Add File To Folder”,选择刚才保存rc文件
这样就会多出“ResourceView”页面,现在可以狂添加资源了
关于资源API,看MSDNVS6的MSDN:
平台SDK
User Interface Services
ResouresVS2003的MSDN:
MSDN Library
用户界面设计和开发
Windows管理
Windows User Interface
Resoures
首先你新建个ActiveX Dll,然后用资源编辑器添加个资源ID为101的位图资源。
接着,添加新类CResAgent,给其添加一个方法用以专门获得位图
Public Function GetBMP(ByVal lResID As Long) As IPictureDisp
Set GetBMP = LoadResPicture(lResID, vbResBitmap)
End Function有了这个Dll后,你在别的工程里只要引用它,并创建CResAgent对象,就能过这个对象来得到Dll中的资源了。
Private Sub Command1_Click()
Dim oResAgent As CResAgent
Set oResAgent = New CResAgent
Set Picture1.Picture = oResAgent.GetBMP(101)
End Sub这种办法避免了使用API的麻烦。如果你实在要用API的话,还是建议你去参考我以前写的那个添加更新资源的 ResourceUpdate 源程序