以DELPHI中*.wav 文件怎么加到资源文件中

新近当对象围看人家分享的同样首今日头条回答:https://www.zhihu.com/question/36426051/answer/76031743

比“流行”的传教是:“16各样之Delphi  
1.0及32各项的Delphi2.0、3.0且提供了资源   
    
  编译工具,其中   Delphi   1.0底资源编译器叫BRCC.EXE,Delphi  
2.0的资源编译器   
    
  叫BRCC32.EXE  
用来编译32各样资源,所有资源编译器都只是供了命令执行版,   
    
  没有提供Windows   版本。制作一个资源一般要透过以下多少个步骤:   
    
  1)编写.RC文件   
    
  ..RC文件是资源的源文件,编译器也便编译这一个文件,生成.RES的   
    
  资源文件   
    
  首先以大家的项目子目录中建立一个纯文本文件,起名叫   
    
  Sound.rc,文件中   
    
  有一行,内容为:   
    
  SOUND1   WAV   SOUND.WAV   
    
  其中SOUND.WAV为一个Windows下便的声音文件   
    
  2)编译它   
    
  于DOS的唤醒符下打   BRCC   SOUND.RC   硬盘哗啦啦转一会儿后,就编   
    
  译完了   
   

自身看写得不可开交有道理的,作为一个勾了10大多年C#代码的老程序员来说,很多地点我能够感同身受,所以呢谈谈自己的自己感受。

  3)制作程序   
    
 
  这为是不过复杂,最灵敏的相同步,首先启动Windows,   再起步Delphi,   
    
  并且将品种   
    
  中之文书保留至我们的品种中的子目录中。   在Unit1.pas饱受摸索这么   
    
  一行   
    
 
  {$R   *.DFM}   
    
  
  把咱的资源文件就扬言在后   
    
 
  {$R   SOUND.RES}   
  
  然后,在Form1中声称两单全局变量   
    
  
  PtrSound   :   PChar;   
    
  hRes   :   THandle;   {handle   to   the   loaded   resource   
    
  if   0   indicates   nothing   playing}   
    
    
  再于Form1的Create事件中写下如下代码   
    
    
  procedure   TForm1.FormCreate(Sender:   TObject);   
    
  var   hResInfo   :   THandle;   
    
  begin   
    
  hResInfo   :=   FindResource(HInstance,   ‘SOUND1’,   ‘WAVE’);   
    
  hRes   :=   LoadResource(HInstance,   hResInfo);   
起名,    
  if   hRes   >   32   then   {its   a   good   load}   
    
  begin   {lock   the   resource}   
    
  ptrSound:=LockResource(hRes);   
    
  end;   
    
  end;   
    
  然后在Form1中放大一个按钮Button1,写如下代码:   
    
    
  procedure   TForm1.Button1Click(Sender:   TObject);   
    
  begin   
    
  sndplaysound(ptrSound,snd_async   or   snd_Memory);   
    
  end;   
    
  这时候就得运作了。”   
    
    是真的也?   
    
     
其实,资源文件之公文称就是一贯未可知与WAVE文件之一模一样,否则,呵呵,扬声器就要BEEP啦,不迷信你试试看。   
  
     
下边笔者写来好运行源代码的手续(当然你的资源文件不克来摩擦的):   
    
 
  1)编写.RC文件   
    
    
  ..RC文件是资源的源文件,编译器也就是编译这一个文件,生成.RES的资源文件  
首先以我们的项目子目录中创建一个纯文本文件,起名叫   
    
  pad.rc  
,在文件被写一举行,内容呢://注意!资源文件称非可以和WAVE文件称相同的!   
  
  SOUND1   WAV   SOUND.WAV   
    
  其中SOUND.WAV为一个Windows下便的声音文件   
       
  2)编译它   
 
  在DOS的提拔符下打   BRCC32   PAD.RC   一会儿后,就编译完了  
//现在一度是brcc32啦,不知有随笔怎么还有BRCC??   
 
  3)制作程序   
    
 
以WINDOWS下启动DELPHI,新建一个品种,将其中的文本保留至我们的类型被之子目录中。  
在Unit1.pas挨找到   
    
    
  {$R   *.DFM}   
    
   
  把我们的资源文件就扬言在末端   
    
    
  {$R   PAD.RES}   
    
  
  然后,在Form1中扬言八只全局变量   
   

1.重构是程序员的主力技能。

  PtrSound   :   PChar;   
    
  hRes   :   THandle;   {handle   to   the   loaded   resource   
    
  if   0   indicates   nothing   playing}   
   
  再于Form1的Create事件被描绘下如下代码   
    
   
  procedure   TForm1.FormCreate(Sender:   TObject);   
    
  var   hResInfo   :   THandle;   
    
  begin   
    
  hResInfo   :=   FindResource(HInstance,   ‘SOUND1’,   ‘WAVE’);   
    
  hRes   :=   LoadResource(HInstance,   hResInfo);   
    
  if   hRes   >   32   then   {its   a   good   load}   
    
  begin   {lock   the   resource}   
    
  ptrSound:=LockResource(hRes);   
    
  end;   
    
  end;   
    
  
  然后每当Form1中加大一个按钮Button1,写如下代码:   
        
  procedure   TForm1.Button1Click(Sender:   TObject);   
    
  begin   
    
  sndplaysound(ptrSound,snd_async   or   snd_Memory);   
    
  end;   
    
          
      点击编译,运行,再按BUTTON1,能够听到扬声器中出WAVE文件内容。

科学,我前边平时也涉及一点,就是多设计情势不是提前就筹划出来的,而是重构出来的。很多场馆是我们于召开筹划之早晚考虑非顶的,是摹写代码时也考虑无交之,只有在类型上线后,客户使用过程中才会影响出来,这么些时刻就得针对项目展开增加,版本升级,这时便反映老程序员实力的时候了,就是依照现已有的状况,结合新的客户需要,使用卓殊的设计形式,使得代码可以优雅的恢弘。
2.做事日志能擢升脑容量。

http://www.cnblogs.com/dashan9zj/archive/2009/01/16/1377181.html

这么些自未曾啊体会,我平时为描绘工作日志,可是这是项目工作的消,不是自身自身的莫名其妙意愿。不过自己个人认为技术博客可以提高脑容量才是真正的。很多档蒙遇见的题目,解决了,也许下还会另行相见,也许别人吗会师逢,那么尽管写成博客,自我总结,方便未来好仍旧其他程序员碰着相同的题材。
3.事先用profiler调查,才来脸谈优化。

正确,我前边为特意召开过SQL
Server的性能优化,很有认知,Profiler是首先步。假诺做.net代码的优化,也发出照应之Profiler工具,这些好援助大家连忙的稳定瓶颈在乌。找到了瓶颈才出对接下去的优化办事。
4.注明贵精不值钱多。杜绝大大妈般的“例注”。漫山无处的碎碎念注释,实际就是是背景噪音。

我无是生同意那一个说法,还有再极端的意见是不需要注释,命名就是注释,好之命名就会诠释一切。我觉得好之命名这是须的,可是在复杂的逻辑中,大家出必不可少当代码中注释我们的思绪,为何会就此如此平等栽写法。
5.一般程序员+google=顶尖程序员。

当真,很多未亮的,解决不了的尽管Google吧,一般Google会告诉您,Stackoverflow知道答案。
6.单元测试总是合算的。

这么些看法我倾向,也许对于许多程序员来说,单元测试就是浪费时间,不过当型复杂了后,真的要命需要单元测试,尤其是于不断的hotfix和本子升级的过程遭到。
7.不若先行勾勒框架还写实现。最好反过来,从原型中提炼框架。

此就是自身前面第一点提到的同样,很多框架设计好了,不过未肯定适应现阶段以此路,这尽管是不得偿所愿。
8.代码结构清晰,另外问题且无到底事儿。

这就是编码规范之问题,代码写的精美,让Debug没那么痛苦,令人家Review你的代码也尚未那么痛苦。
9.吓的系列作风硬派,一键测试,一键宣布,一键部署;
烂的连串生性猥琐,口口相传,不立文字,神神秘秘。

此啊是自身最近以研讨之CI(持续集成),适应TeamCity可以把测试,发表,部署都自动化搞定。
10.编码无须惧怕变化,要抱变化。

因接口的编程,咱们无非关注接口,实现嘛,随时可以换。
11.常充电。程序员只有同种植死法:土死的。

好吧,程序员的通令就是这般,技术转移最为抢了。
12.
编程的务,隔离是趋势,起名是重要,测试是骨干,调试是补,版本控制是后悔药。

面向接口,控制反转与依靠注入,都是编写复杂的软件之必备良药。测试,调试,没啥可说的,必备。版本控制,这是必的!尽管是单暴发一个开发人士的类型,也要版本控制。
13.
一行代码一个兵。形成等机制才会管用指挥。单位规模不宜过深。千丁班,万人排,容易变成万人坑。

此间说之一个有关函数的正经问题,有同一栽说法是一个函数的情节不应有超越7行,假使跨越7行,那么肯定是拿多单Function合并到一个函数中之,应该拆分成六只函数。这多少个要求或出硌高,很为难做到。可是上百行,上千举办的函数那是匪应当的,必须拆分!

  1. 重构/优化/修复Bug,同时只可以作同样桩。

这自依然有些体会的,把多单对象统一及平等不良修改中,这是何等困难的事情,真的不好做。最好是分手,先重构,保证重构后的机能及原先的效率雷同,然后又Fix
Bug。

  1. 粗略模块注意包装,复杂模块注意分层。

面向对象编程基本要义,封装,公司应用架构的底蕴就是是分段。最经典的老三重叠架构做集团应用的应当都掌握。

  1. 人脑性能有限,整洁胜为杂乱。读不亮的代码,尝试整理下格式;
    不佳用的接口,尝试再一次包装下。

要么说及编码规范的问题,简洁易了然,接口要清晰。

  1. 迭代快决定工作强度。想多快好省,简化开发流程,加快迭代快。

软件工程被的立刻迭代,敏捷开发,涉及到前边提到的频频集成。

  1. 忘记优化写代码,忘掉代码作优化。因为过早优化,往往从倍功半;
    不通过全局属性度量,优化也难来建树。

勿是异常认同,有经历的程序员,在描写代码时利用的虽是极其美的算法,最好的询问办法。没有什么忘掉优化写代码的事情,在描绘代码时,想到的虽然是无限精良的算法,因为当他看来就是这种算法才是对准之。

  1. 最好好的工具是纸笔;其次好的是markdown。

纸和笔只适用于以Face 2
Face底互换过程被,交换后到多拍摄是,根本不可以建立中之知识库,以后想到从前的议论,怎么找?怎么修改?。写Wiki才是王道,Markdown只是一致栽写Wiki的法而已。
20.
leader问你任务时,你答不上来。很可能是天职拆分不敷细致。细分到无问题吧。

应该是的,如若非理解任务时,那么申明或者你向不知道是任务怎么开,完全无相会,要么就是任务最老了,不佳揣测时间。

  1. 宁多终于一全面,不可少估一上。别总为您的“乐观”而boss受惊吓。

凡是什么。程序员在量工时的时节总是太乐观。随便说便是一个刻钟即能搞定,半上便会开了。完全没有想到该改对任何模块的影响。一个修改后的单元测试,可承受测试,UAT环境测试,再至上线,很多地方还得费时之。一旦有测试不通过,然后以得调试,修改,再进行单元测试,可领测试~~~~,好吧,何人能保证每一回修改都是相同不行经过也。

  1. 最为实用之言语是English。其次的或是Python。

吓吧,我罗马尼亚语不好,Python更无通晓。我未评说。

  1. 百闻不如一见。画有结果,调试耗时用毒收缩。

从未有过领会这里当说啊。

  1. 资源、代码应一律道为版本管理。资源分外错误远较代码匹配错误还难破除查。

这一个相应是这般。在路文件夹着,有这一个个头文件夹,其中一个文本夹叫src,这里存的才是代码,那么其余的公文夹呢?就可能存放相关的统筹啊、测试啊、工具之类的。

  1. 甭因想象开发,
    要基于原型开发。原型的价值是飞验证想法,帮我们节省时间。

恩典,是什么,最好是事先画起原型。有矣原型才有益于研商,明确要求。

  1. 系列化首选明文文本 。诸如二进制、混淆、加密、压缩等等有需要平常又加。

应是吧,比如Json是于好的系列化选项。

  1. 编译器永远比你懂微观优化。只可以往它们不善于的取向努力。

发矣好的设计及算法,何人干编译器内部怎么开的。

  1. 无设肯定了很、过远、过密切的计划。尽管定矣吧不曾就此。

过死了远之对象或可以肯定吧,规划一下下一个本子的Roadmap,也许还没有起举行,可是愿景可以建立。只是时常会出计划赶不齐转的景观,所以远期的计划未需非常详细,反正也晤面随地变换。

  1. 至少半数时间以花费在并及。

当下得作什么项目了吧,很多类就是一个全独立的半壁江山,没啥好并的。如今底根底或就是是不过点登录的合并,太简单花不了聊日子。此外常见的是HR系统的员工数量的并还有财务系统的财务数据集成,确实不行费工夫。

  1. 与主流看法/方法/风格/习惯相悖时,先检查自己最保险。

不曾啥说之。

  1. 出现bug主动查,不管是无是若的。这会为您工作能力猛涨、个人形象飙升;
    假设您的bug被外人就出来,这尔会生消沉~≧﹏≦

查Bug是为甚不便的事务,自己开的路,自己再一次支撑运维一段时间,看看好的代码写的来差不多腐败,有差不多麻烦修改,多麻烦调试。真的能够叫祥和力量提高广大。

  1. 不知怎么挑技术书时就挑薄的。起码不会见无限昂贵,且若可知看罢。

本人特别疲倦,很多书写还扣留了大体上纵看不下去了。

  1. git是太神的。简单,可靠,免费。

源代码管理,必择Git,自己可以架设Git Server,也可以据此GitHub。

  1. 偏偏针对“可预测的非理性”抛断言。

恩典。是呀,尤其用户输入的时刻。

  1. Log要描绘时间以及分类。并且只要可以重定向输出。

是用现成的Log组件即可。有Log4J,Log4Net,真的好好用。

  1. 注是稍微差之文档。更好之是明显的命名。让代码讲团结之故事。

面前已经说了了。

  1. 去轮子是可怜好之磨练情势。前提是若表现了其它轮子。

这边说的凡程序员的我修炼的历程。确实,对于一个需状况,我们应抢先想想有无暴发备的开源项目得以为此,然后再拘留行如故不行将开源项目用来转,最终自己丰硕强大了,就自己举行一个轮子。

  1. code
    review最好为小组要结伴为主。因为对业务发足精晓提出才再一次发生价。而且不会晤变成负担。注意,提交过程遭到之管理人review很爱成为瓶颈。

眼看点我举办的坏,在本人这么多年之干活负,也只有为数不多的Code Review
Meeting。

  1. 提问前先做调研。节约大家之时。

举凡呀,谷歌可以平素告诉你答案的,这即使甭还问问人家了。

  1. 永恒转变小看程序媛(╯3╰)

使是正在的码农,在我看来是从未有过区分的。所以没有小看或者高看的意思。

如上都是自我之个体感受写给协调,看看差异,希望未来可以做的再度好吧。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图