为什么在无窗体的exe文件中res文件操作错误?
这是我的代码
program Project1;
{$APPTYPE GUI}
uses
Windows,
Classes;
{$R+ 1.res}//1.res 里的格式 我放在后面给大家看看
var
rs1,rs2,rs3,re4,re5:TResourceStream;
begin
rs1:=tresourcestream.Create(0,'RC2','BAOBEI');
rs1.Free ;
end.
文件1.rc的内容是
BAOBEI RC2 "C:\restest\宝贝.mp3"
然后用brcc32这个工具,将1.rc生成1.res。
程序运行出现错误,我看不懂啊,到底是什么地方错了呢?
我的本意是程序把一个mp3绑定在一起,然后在合适的时候释放。
随后运行 出现一个提示框 内容如下
Project Project1.exe raised exception class ERsNotFound with message 'Resource RC2 not found'
Process stopped.Use step or run to continue .
点击ok后 又出现一个提示框,内容如下
Exception EResNotFound in module Project1.exe at 0001179.
Resource RC2 not found.
到底是为什么呢?
[最优解释]
参数写反了
resStream := TResourceStream.Create(HInstance, 'BAOBEI', 'RC2');
resStream.Destroy;
[其他解释]
为啥无窗体就无进程尼,不点确定,去任务管理器里看下有没有project1.exe
program Project1;
{$APPTYPE GUI}
uses
Dialogs,
SysUtils;
begin
{ TODO -oUser -cConsole Main : Insert code here }
ShowMessage(inttostr(HInstance));
end.
[其他解释]
无窗体的无进程的程序
在这里 hinstance这个参数应该设置为0吧
[其他解释]
佩服,佩服,这段代码我看了好几遍,没发现这个问题。。。。
[其他解释]
我的意思是没有消息循环,
点完那个messagebox
project1.exe就在任务管理器消失了
[其他解释]
消失了,是因为它运行完鸟,就跟有窗体的程序,你点了关闭叉叉一样的。
[其他解释]
嗯 是呀 2个星星的僵尸 呵呵
[其他解释]
windows只会为有消息循环的线程分配消息队列,通常都是界面程序,或者带消息获取函数的线程,控制台程序因为没有窗体,所以一般也不会分配消息队列
[其他解释]
哦 谢谢啦