首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

为什么在无窗体的exe文件中res文件操作异常

2012-12-17 
为什么在无窗体的exe文件中res文件操作错误?这是我的代码program Project1{$APPTYPE GUI}usesWindows,Cla

为什么在无窗体的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;

[其他解释]

引用:
无窗体的无进程的程序 
  在这里 hinstance这个参数应该设置为0吧


为啥无窗体就无进程尼,不点确定,去任务管理器里看下有没有project1.exe

program Project1;

{$APPTYPE GUI}

uses
        Dialogs,
        SysUtils;

begin
  { TODO -oUser -cConsole Main : Insert code here }
  ShowMessage(inttostr(HInstance));
end.

[其他解释]
无窗体的无进程的程序 
   在这里 hinstance这个参数应该设置为0吧
     
[其他解释]
引用:
参数写反了
  resStream := TResourceStream.Create(HInstance, 'BAOBEI', 'RC2');
  resStream.Destroy;

佩服,佩服,这段代码我看了好几遍,没发现这个问题。。。。
[其他解释]
我的意思是没有消息循环,
     点完那个messagebox
   project1.exe就在任务管理器消失了
[其他解释]
消失了,是因为它运行完鸟,就跟有窗体的程序,你点了关闭叉叉一样的。
[其他解释]
嗯 是呀  2个星星的僵尸 呵呵  
[其他解释]
windows只会为有消息循环的线程分配消息队列,通常都是界面程序,或者带消息获取函数的线程,控制台程序因为没有窗体,所以一般也不会分配消息队列
[其他解释]
哦  谢谢啦

热点排行