求教在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文件执行

把EXE可执行文件等作为资源包含在Delphi编译文件中

在Delphi如何将exe文件加入到资源文件中,如何进行调用?

delphi 如何把其他exe文件加入dll中,并调用

delphi7 皮肤控件安装及使用?我安装后总是提示搜索不到vclskin.res 我已经放在路径下

delphi 调用 EXE 并在Panle中运行