我用tframe创建了一个dll.如何在我的应用程序中加载它,我不喜欢使用bpls,我只想用我的应用程序来分配exe和dll
我正在尝试在delphi包(bpl)中加载一个tframe,以便在我的主应用程序中显示,请为我提供包和应用程序的代码.
我正在创建一个Delphi应用程序,它将执行msi静默安装.我想获取msi的进度值并获取安装状态并在delphi applcation上显示它
如果点击Delphi应用程序中的按钮,我也想关闭msi.
我正在使用delphi应用程序,因为没有任何安装软件提供我想要的一些设施
我正在编辑一个名为Opencv for Delphi的开源项目,它可以用Delphi 6,Delphi 2009和Delphi xe2编译.
我刚刚Application.MainFormOnTaskbar := True;为Delphi 6编译删除了不兼容的(例如:).
在运行时d6应用程序正常运行没有错误,但其余编译良好,但调用时运行时错误cvopencv.dll.
原始项目是一个用Delphi 2007编译的西班牙项目,工作正常.
在d6 exe我除了???????之外什么都看不懂 但其他人用西班牙语显示这意味着它是一个UNICODE问题,当调用cvopencv.dll错误发生时.
我能做些什么才能使这个项目与Delphi 2009或更高版本一起工作(仍然是d2009编译好)
========================= David Heffemans回答=====================
procedure TForm1.Button2Click(Sender: TObject);
var
file1 : PAnsiChar; // "haarcascade_frontalface_alt.xml";
file2 : PAnsiChar; //"haarcascade_eye.xml";
file3 : PAnsiChar; //"haarcascade_upperbody.xml";
SourceFileName : AnsiString;
StorageType : Integer;
ImSize : CvSize;
begin
memo1.Lines.Clear;
GetMem(Storage, SizeOf(CvMemStorage));
SourceFileName:=Edit1.Text;
StorageType:=0;
storage:=nil;
storage :=cvCreateMemStorage(storageType);
file1 := PAnsiChar(ExtractFilePath(Application.ExeName)+'haarcascade_frontalface_alt.xml');
file2 := PAnsiChar(ExtractFilePath(Application.ExeName)+'haarcascade_eye.xml');
file3 := PAnsiChar(ExtractFilePath(Application.ExeName)+'haarcascade_upperbody.xml');
cascade_f := cvLoad(file1, nil, nil, …Run Code Online (Sandbox Code Playgroud) 什么是java的默认修饰符的Delphi等价物及其使用方法.
要么
什么是只能在其当前单位中访问的修饰符
在Remy Lebeau之后更新1 - TeamB的答案
什么是Delphi中java的私有等价物
对于我的上一个项目,我在delphi应用程序中使用了很多帧,所以我决定创建dll并将它们放在dll中(所有在Delphi中创建)
我已经浏览了很多网站,并提出了有效的代码,但对于该示例,我必须使用运行时包编译这两个应用程序和dll,这意味着我还必须分发bpls.如果不检查构建与运行时包错误即将到来
这是我发现的代码
在exe中
procedure TForm1.Button1Click(Sender: TObject);
type
TGetTheFrame =Function( Owner: TComponent; TheParent: TWinControl ): TFrame; stdcall ;
var
GetTheFrame : TGetTheFrame;
begin
try
GetTheFrame(application,TabSheet1).Free ;
except
end;
frm := GetTheFrame(application,TabSheet1) ;
dllHandle := LoadLibrary('project1.dll') ;
if dllHandle <> 0 then
begin
GetTheFrame := GetProcAddress(dllHandle, 'GetTheFrame') ;
frm := GetTheFrame(application,TabSheet1) //call the function
{ ShowMessage('error function not found') ;
FreeLibrary(dllHandle) ; }
end
else
begin
ShowMessage('xxxx.dll not found / not loaded') ;
end
Run Code Online (Sandbox Code Playgroud)
在DLL中
Function GetTheFrame( Owner: TComponent; …Run Code Online (Sandbox Code Playgroud) Delphi编译器将如何编译以下代码;
uses a_big_unit;
procedure TForm1.Button1Click(Sender: TObject);
var
acompont : T_a_big_component ;
begin
if (true = false ) then // or if false then
begin
bc := Tbig_component.create(self)
end;
Run Code Online (Sandbox Code Playgroud)
在此代码中,true = false将永远不会发生,因此组件acompont将永远不会创建.
当delphi在优化模式下编译时,这些未使用的单元和代码将被省略
当使用单位时
在delphi 7中,即使你只使用XPMan单元; (不使用任何组件(TXPManifest1)),仍然使用单位,每个组件都以主题显示;
有些人说德尔福如果不需要就会省略单位;
那么Delphi如何识别一个单元是否对它所调用的单元产生影响
我想使用RemObject Pascal Scripter的另一个应用程序运行Delphi应用程序(使用表单vcl,表单等).
将RemObject Pascal Scripter支持delphi的所有领域,
如果是这样,我可以包括第三方VCL
如果没有,你可以建议我用表格和控件构建可解释的应用程序
我用反射器直到试用期结束
我已成功解码了许多应用程序.通过我最近的帖子,我能够识别它还可以解码delphi.net vcl应用程序(d2007).
我可以解码delphi.net vcl并将其转换为ac#应用程序,可以使用visual studio完全编译成功.
下面是我想要建模的代码
Class1 = class
public
type
Class2 = class
type
Class3 = class
end;
end;
end;
Run Code Online (Sandbox Code Playgroud)
以下是从代码生成的RAD Studio IDE模型 http://www.freeimagehosting.net/newuploads/44170.jpg
我想使用UML编辑内部类,但是没有任何选项可以做到这一点,即使我将一个新类拖放到现有类中,它也正确地驻留在内部但是没有任何正确的方法来定义内部之间的关联类
delphi ×10
bpl ×2
dll ×2
tframe ×2
c# ×1
frame ×1
installation ×1
load ×1
opencv ×1
optimization ×1
pascalscript ×1
reflector ×1
remobjects ×1
runtime ×1
uml ×1
unicode ×1