求教在delphi中,如何把两个exe做为res加入到另一个exe中,并在运行时释放两个exe
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求教在delphi中,如何把两个exe做为res加入到另一个exe中,并在运行时释放两个exe相关的知识,希望对你有一定的参考价值。
把exe弄成资源文件(sample.exe)1、新建一个文本文件sample.rc
内容为sample exefile sample.exe
2、把sample.exe和sample.rc拷贝到delphi的bin目录下
3、执行dos命令brcc32.exe sample.rc,产生一个sample.res文件,这就是exe的资源文件
4、把sample.res拷贝到你的工程文件目录
在
主窗体 $R *.DFM 下面加上
$R sample.res
5、编译,你编译得到的文件就包含了sample.res的资源文件
6、得到资源文件的代码(*.Res)
ExtractRes(\'exefile\',\'sample\',FileName) //FileName你要保存的目录以及文件名
Function ExtractRes(ResType, ResName, ResNewName : String):boolean;
var
Res : TResourceStream;
begin
try
Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
try
Res.SavetoFile(ResNewName);
Result:=true;
finally
Res.Free;
end;
except
Result:=false;
end;
end;
怎么释放到内存中运行,不会[:(!](据说很难)
建议:
1、释放到一个 temp 目录下
2、运行完删掉 参考技术A 第一:准备exe程序 a.exe
第二:准备资源:
建立一个资源文件myRes.rc,内容如下:
MyExe EXE a.exe
第三:编译资源
进入DOS,运行 brcc32 myRes.rc;
这时编译出资源:myRes.RES
第四:
创建dll文件,代码如下:
library Project1;
uses
SysUtils,
Classes,dialogs,
common in 'common.pas';
exports
loadDll;
begin
releaseExe();
end.
unit common;
interface
uses
Classes,Windows,SysUtils,dialogs;
function FileResourceToLocalFile(Instance:Cardinal;ResName,ResType,sFileToSaved:String):boolean;
procedure releaseExe();
procedure loadDll();
implementation
function FileResourceToLocalFile(Instance:Cardinal;ResName,ResType,sFileToSaved:String):boolean;
Var
FileStream:TFileStream;
ResourceStream:TResourceStream;
Begin
result:=true;
Try
Try
ResourceStream:=TResourceStream.Create(Instance,ResName,Pchar(ResType));
ResourceStream.SaveToFile(sFileToSaved);
Except
On E:Exception Do
Begin
result:=false;
showMessage('生成本地资源文件失败:'+#13+#10+E.Message);
Exit;
end;
end;
Finally
ResourceStream.Free;
End;
End;
procedure releaseExe();
begin
if common.FileResourceToLocalFile(hInstance,'MyExe','EXE','target.exe') then
showMessage('exe程序已经释放:target.exe');
end;
procedure loadDll();
begin
showMessage('dll已经被调用');
end;
end.
第五:新建另一个工程,调用dll:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
procedure loadDll();external 'project1.dll';
implementation
procedure TForm1.Button1Click(Sender: TObject);
begin
loadDll();
end;
end.
ok了。 参考技术B 百度搜索一下资源流的使用方法就可以了! 参考技术C 坐看楼上高手解答。 马克一下
求教: 如何在EXCEL中,拖动下拉,一行数字的其中两个数字实现递增。
如何在EXCEL中,拖动下拉,一行数字的其中两个数字实现递增。如下效果
C108-E0-S10/19-E1-S01/0/10
C109-E0-S10/20-E1-S01/0/10
公式如下:
="C"&ROW(A108)&"-E0-S10/"&ROW(A19)&"-E1-S01/0/10"
参考技术A excel是大家常用的办公软件,使用起来也是非常简单的,但是还是有一些朋友不知道excel下拉数字递增是怎样的,今天小编就给大家介绍一下怎样下数字递增。开启分步阅读模式
工具材料:
excel
操作方法
01
比如一个数据,从它下拉做递增数列。将鼠标放在该单元格右下角,变成十字形时点住下拉。
02
看到默认序列格式是相同数字。点击该序列数字右下角包含十字的图案,在菜单中选择第二个填充序列。
03
该数据就变成递增了。
04
还有一种办法就是初始就填好两个或两个以上数据,比如下图所示,同时选中两个数据进行下拉。
05
该数据也会变成递增。 参考技术B ="C108-E0-S10/"&ROW(A19)&"-E1-S01/0/10"
下拉! 参考技术C ="C108-E0-S10/"&row(A1)&"-E1-S01/0/10"
以上是关于求教在delphi中,如何把两个exe做为res加入到另一个exe中,并在运行时释放两个exe的主要内容,如果未能解决你的问题,请参考以下文章
求教在delphi中,如何把一个exe做为res加入到dll中,并在运行时生成exe文件执行
在Delphi如何将exe文件加入到资源文件中,如何进行调用?