社区
C++ Builder
帖子详情
如果加入了自己的.rc文件到project……
类库
2003-03-13 11:40:54
如果加入了自己的.rc文件到project,可执行文件的图标就会变没有,还有任务栏上的那个图标也没了,如果在.rc文件中加一个图标的话,可执行文件的图标就会用这新加的图标,但任务栏上还是没有,如果在.rc文件中加了2个或以上图标,就会随机选一个图标来用,好像不能自己指定,不知应该怎么解决?
...全文
214
4
打赏
收藏
如果加入了自己的.rc文件到project……
如果加入了自己的.rc文件到project,可执行文件的图标就会变没有,还有任务栏上的那个图标也没了,如果在.rc文件中加一个图标的话,可执行文件的图标就会用这新加的图标,但任务栏上还是没有,如果在.rc文件中加了2个或以上图标,就会随机选一个图标来用,好像不能自己指定,不知应该怎么解决?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
myy
2003-03-14
打赏
举报
回复
rc 中的资源名的问题,project.res中的默认图标名为“MAINICON”,你的资源名字
比"MAINICON" 大(指字符串比较)就行了,比如"ZY_XXX",注意,改动后,最好把
原来的.rc生成的.res删掉,重新生成。
hzhxxx
2003-03-14
打赏
举报
回复
OK
ChengCheng2000
2003-03-14
打赏
举报
回复
阿波不错啊。
lanren_me
2003-03-14
打赏
举报
回复
新建一个*.rc文件,写内容如下:
giffile GIFFILE yourgiffile.gif
将此文件添加到工程。在程序中是用下面的语句将GIF解出来:
TResourceStream &rs = *new TResourceStream((int)HInstance, AnsiString("giffile "),"GIFFILE " ) ;
rs.SaveToFile( AnsiString(exefile) ) ;
delete &rs ;
Borland C++builder资源文件编辑
1 建立 现在从borland c++builder ->tools->Image Editor
Image Editor->File->New->Resource
在菜单中会出现resource 从new中选择资源分类有 bitmap icon cursor
若选择了bitmap 会出现选择位图的颜色和大小如果是从外部位图的话就要知道它的大小 其下会出现bitmap1 它就是位图文件名 选中他单击右键 edit 就进入绘图状态可以剪贴板中把外部位图考进来 然后就是保存了
2在c++builder 中Project->Add to Project… 装入资源文件
3使用 a. Graphics::TBitmap *Bitmap; //低颜色
Bitmap=new Graphics::Tbitmap();
Bitmap->Handle=LoadBitmap(int(hInstance),”Bitmap1”)
//256种颜色
b. LoadFromResourceName(int Instance,const AnsiString ResName);
LoadFromResourceID (int Instance,int ResID);
列如:
1 Graphics::TBitmap *Bitmap;
Bitmap=new Graphics::Tbitmap();
Bitmap->LoadFromResourceName(int (Hinstance),”picture1”);
2 Image1->Picture->Bitmap->LoadFromResourceName(int(HInstance),"Bitmap1");
注意 大 小 写 int(hInstance) int(HInstance)
手工操作
选用文本文件输入内容
Bitmap1 BITMAP “ C:\windows\bitmap1.bmp”
用brcc32.exe编译成资源文件 他在bin目录下 brcc32 –32 testwave.rc =>testwave.res
使用时在单元文件cpp中 # pragma resource “D:\\cbuilder\\picture.RES”
TForm1 *Form1;
注意
test.rc是一个纯文本文件,可用写字板建立,
但存盘时,文件名上要加上双引号即成 "test.rc",
否则会变成 wave.rc.txt
这种办法可把声音文件加到你的.exe中:
1.建立纯文本资源文件如wave.rc,内容如下:
ID_WAVE WAVE "C:\testwave.wav"
2.BCB中用Project->Add to Project 将test.rc
添加到你的工程中(即你的程序中);
3.在程序中:
#include "mmsystem.h"
PlaySound("ID_WAVE",HInstance, SND_RESOURCE);
Playsound( ) && rc
//---------------------------------------------------------------------------
void __fastcall TForm1::FromFileClick(TObject *Sender)
{
PlaySound("mail.wav", NULL, SND_FILENAME);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FromFileMemoryClick(TObject *Sender)
{
TFileStream *WaveFile = new TFileStream("mail.wav", fmOpenRead);
BYTE *wavemem = new BYTE[WaveFile->Size + 1];
WaveFile->Read(wavemem, WaveFile->Size);
PlaySound(wavemem, NULL, SND_MEMORY);
delete[] wavemem;
delete WaveFile;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FromResourceClick(TObject *Sender)
{
PlaySound("MAIL", HInstance, SND_RESOURCE);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FromResourceMemoryClick(TObject *Sender)//res 可以 参数一是名称,参数二是类型名称 也就是RC中的 testwave WAVE “ c:\testwave.wav” 可以是WAV ,WAV_DATA 任意的
{
HANDLE ResHandle;
BYTE *WavData;
ResHandle = FindResource(HInstance, "MAIL", "WAVE");
ResHandle = LoadResource(HInstance, ResHandle);
WavData = (unsigned char *)LockResource(ResHandle);
PlaySound(WavData, NULL, SND_MEMORY);
FreeResource(ResHandle);
}
如何把资源文件的文本读入到一个变量?
TResourceStream *rs=new TResourceStream((int)HInstance,"mydata","txt");
TStringList *ss=new TStringList;
ss->LoadFromStream(rs);
delete rs;
如何调用资源文件中res的jpeg、avi,wav,midi,mp3文件
Image中加入jpg可以用如下方法:
在文件头加入#include <jpeg.hpp>
在构造函数中加入
Image1->LoadFromResourceName(0, "JPEG");//你的资源名
Animate中加入avi可能也能用这种办法,不过没试过
BC++ Builder 3.0中各种资源的利用
烟台南大街建行科技部 李进
---- 在 编 写 程 序 的 过 程 中, 经 常 要 用 到 各 种 资 源。 比 如 说, 想 给 自 己 的 程 序 换 个 自 己 的 图 标, 使 用 一 些 活 泼 的 光 标 来 增 加 趣 味 性, 播 放 一 些 声 音 和 动 画 文 件, 或 者 使 用 别 人 写 好 的 程 序 来 实 现 某 个 功 能。 我 们 往 往 希 望 将 这 些 资 源 直 接 放 到EXE 文 件 中 以 形 成 一 个 单 独 的 可 执 行 文 件, 这 就 存 在 一 个 如 何 在 运 行 时 访 问 和 使 用 这 些 资 源 的 问 题。
---- 在 编 译 期 间, 这 就 要 用 到 一 种 文 件, 以 .rc 结 尾 的 资 源 定 义 文 件。
---- 一: RC 文 件
---- rc 文 件 是 个 文 本 文 件, 它 的 格 式 很 简 单, 按 如 下 格 式 定 义:
---- 资 源 标 识 符 资 源 类 型 资 源 的 路 径
---- 以 下 的 rc 文 件 定 义 了 一 个 声 音 资 源, 两 个 光 标 资 源, 三 个 图 标 资 源 和 一 个exe 文 件 资 源。
src1.rc:
S1 WAV wav1.Wav
C1 CURSOR cursor1.cur
C2 CURSOR cursor2.cur
I1 ICON icone1.ico
I2 ICON icone2.ico
I3 ICON icone3.ico
unzip EXEFILE pkunzip.exe
---- 你 可 以 将 写 好 的 rc 文 件 加 到 你 的 project( 项 目) 中。 你 也 可 以 手 工 将 其 编 译 为 供 程 序 直 接 使 用 的 二 进 制 资 源 文 件(.res 文 件)。 在BCB3.0 中, 可 以 使 用 命 令 行: brcc32 src1.rc src1.res 。
---- 二: 资 源 的 使 用
---- 下 面, 按 照 使 用 的 简 繁 程 度, 依 次 说 明 各 类 资 源 的 使 用 方 法。 需 要 说 明 的 是, 下 面 讲 述 的 使 用 方 法, 在 别 的 编 译 环 境 下(BC, VC 等) 也 是 一 样 的。
---- 1: 建 立 一 个 新 的 项 目
---- 启 动 BCB3.0, 选 FILE- >new- >Application 建 立 一 个 新 的 项 目。
---- 在 project- >Add to Project 中, 加 入 写 好 的 src1.rc 文 件。 当 然, 那 些 声 音、 光 标、 图 标 文 件 都 应 该 存 在。
---- 这 时, 我 们 有 了 一 个 空 的 窗 体(Form)。
---- 2: 能 够 利 用 windows API 函 数 直 接 访 问 的 资 源 有:
图 标 LoadIcon()
光 标 LoadCursor()
加 速 表 LoadAccelerators()
位 图 LoadBitmap()
菜 单 LoadMenu()
字 符 串 LoadString()
---- 前 五 个 API 函 数 使 用 方 法 都 一 样, 带 两 个 参 数。
---- 第 一 个 参 数 指 明 资 源 的 存 放 地 , 第 二 个 参 数 为 rc 文 件 中 资 源 的 标 识。
---- 字 符 串 LoadString 除 这 两 个 参 数 外, 还 有 两 个 参 数, 指 明 字 符 串 缓 冲 区 的 地 址 和 大 小。
---- 下 面 的 一 小 段 程 序 示 范 了 图 标 和 光 标 的 使 用。
---- 在 Form 上 放 置 一 个 按 纽, 在 其 OnClick 事 件 中 加 入 以 下 代 码:
void __fastcall TForm1::Button1Click(TObject *Sender) {
// 将光标形状改为自己定义的:
Screen- >Cursors[crDefault] = LoadCursor( HInstance, "C1");
// 将图标改为自己定义的:
Icon = new TIcon() ;
Icon- >Handle = LoadIcon(HInstance,"I1");
Application- >Icon = Icon ;
}
---- 其 中 的 HInstance 指 示 资 源 所 在 地 为 执 行 文 件。 编 译 执 行 后, 点 击 该 按 纽, 光 标 和 图 标 都 会 换 成 新 的。
---- 3: 能 够 通 过 windows API 使 用 的 资 源
---- 对 于 声 音、 动 画 等 文 件, 可 以 使 用 windows API 函 数 播 放。 但 是 不 象 上 面 几 种 资 源, 需 要 遵 循 一 定 的 步 骤。 如 下 所 示, 依 次 调 用 FindResource, LoadResource, LockResource 函 数, 来 播 放 一 个Wav 声 音 文 件。
---- ( 当 然, 独 立 的 声 音 文 件 可 以 在 运 行 时 直 接 播 放。 我 们 这 里 讨 论 的 是 将 wav 文 件 编 译 进 EXE 文 件 的 情 况)
---- 在 Form 上 放 置 第 二 个 按 纽, 在 其 OnClick 事 件 中 加 入 以 下 代 码:
void __fastcall TForm1::Button2Click(TObject *Sender)
//定义资源块
char *wav_handle ;
//装入 Wav文件
HRSRC h = FindResource(HInstance,"S1","WAV");
HGLOBAL h1 = LoadResource(HInstance, h);
wav_handle = (char *)LockResource(h1);
//播放 Wav文件。由于Wav文件装载在内存中,
sndPlaySound函数要用 SND_MEMORY参数
sndPlaySound(wav_handle, SND_MEMORY ¦ SND_SYNC);
}
---- 编 译 执 行 后, 点 击 该 按 纽, 会 播 放 一 次 声 音。
---- 对 于 动 画 等 文 件, 使 用 方 式 类 似Wav 文 件。( BCB 提 供 了 一 个TAnimate 控 件, 可 以 播 放 无 声 的Avi 文 件)
---- 4: 不 能 直 接 通 过 windows API 使 用 的 资 源
---- 此 种 资 源 不 能 够 由 windows API 直 接 访 问 和 执 行。 但 是, 我 们 可 以 用 一 种 变 通 的 方 法 来 使 用 它。
---- 下 面 示 范 如 何 使 用 pkunzip.exe, 思 路 如 下: 程 序 运
asp.net知识库
SQL过程自动C#封装,支持从表到基本存储过程生成 使用SQLDMO控制 SQL Server 使用SQL-DMO实现定制SQL Scripts Create Tables and Build inserts from Tables by using Mygeneration Templates(Sql Server) C# 获取...
.map
文件
的使用(程序入口地址)
/mapinfo:exports 表示生成 MAP
文件
时,
加入
exported functions (如果生成的是 DLL
文件
,这个选项就要加上) OK,通过上面的步骤,我们已经得到了 MAP
文件
,那么我们该如何利用它呢? 让我们从...
RK3399 Android系统10.0 init进程启动
5,selinux 进程对
文件
进行访问时,Android 4.3就开始集成了selinux权限管控, 如果需要启动某个脚本或者服务, selinux的配置就避免不了,并且Android8之后, Android系统对进程访问的权限管控的非常严格。...
evc程序移植到VS2005
一、VS2005新建工程(跟要移植的工程同名,这样可以复制资源)。...在你的工程中添加另一个工程的
rc
文件
,这时资源视图中就会出现两个
rc
,从后加的
rc
中拷贝资源到你自己工程的
rc
中就可以了。 法2:vc
Linux-权限管理(一)
ACL权限1、 权限概述2、 ...#dumpe2fs命令是查询指定分区详细
文件
系统信息的命令 选项: -h仅显示超级块中的信息,而不是显示磁盘块组的详细信息。 ………..省略部分输出………… Defaultdirectoryhash:half_md4 …...
C++ Builder
13,825
社区成员
102,678
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章