小编The*_*oon的帖子

Delphi forms.pas内存泄漏?

您好

我在Delphi 2006中有一个动态链接库,在其uses子句中有forms.pas.

如果我加载dll然​​后立即在for循环中卸载它,比如10000次,内存会慢慢爬上去.但是,如果我将Forms.pas从dll的uses子句中删除,那么问题就会消失.

代码很简单

这是我的dll代码:

library Project1;

uses
  Forms;

begin

end.
Run Code Online (Sandbox Code Playgroud)

这是我的调用应用程序的代码:

procedure TForm1.Button1Click(Sender: TObject);
var
  t_ImportHandle: LongInt;
  t_Index: Integer;
begin
  for t_Index := 0 to 10000 - 1 do
  begin
    t_ImportHandle := LoadLibrary('Project1.dll');
    FreeLibrary(t_ImportHandle);
  end;
 end;
Run Code Online (Sandbox Code Playgroud)

是否有其他人能够复制这个或知道原因是什么以及如何解决它?

memory delphi dll memory-leaks

3
推荐指数
1
解决办法
938
查看次数

Delphi XE2组装

我有以下功能在Delphi 2006中工作,但在Delphi XE2下,它在处理时会产生访问冲突错误或特权指令错误RET.

function Q_TrimChar(const S: string; Ch: Char): string;
asm
        PUSH    ESI
        MOV     ESI,ECX
        TEST    EAX,EAX
        JE      @@qt
        MOV     ECX,[EAX-4]
        TEST    ECX,ECX
        JE      @@qt
        PUSH    EBX
        PUSH    EDI
        MOV     EBX,EAX
        MOV     EDI,EDX
        XOR     EDX,EDX
        MOV     EAX,ESI
        CALL    System.@LStrFromPCharLen
        MOV     EDX,EDI
        MOV     ECX,[EBX-4]
@@lp1:  CMP     DL,BYTE PTR [EBX]
        JNE     @@ex1
        INC     EBX
        DEC     ECX
        JNE     @@lp1
        MOV     EDX,[ESI]
        JMP     @@wq
@@ex1:  DEC     ECX
@@lp2:  CMP     DL,BYTE PTR [EBX+ECX]
        JNE     @@ex2
        DEC     ECX
        JMP     @@lp2
@@ex2:  MOV     EDI,[ESI]
        LEA …
Run Code Online (Sandbox Code Playgroud)

delphi assembly delphi-2006 delphi-xe2 basm

3
推荐指数
2
解决办法
1414
查看次数

Delphi字节的反向顺序

我一直在尝试编写一个带有两个指针(输入和输出)的函数,并以相反的顺序将输入中的字节写入输出.到目前为止,我还没能使它正常工作.

procedure ReverseBytes(Source, Dest: Pointer; Size: Integer);
var
  Index: Integer;
begin
  Move(Pointer(LongInt(Source) + Index)^, Pointer(LongInt(Dest) + (Size - Index))^ , 1);   
end;
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议一个更好的方法来做到这一点.

谢谢.

delphi reverse byte pointers

3
推荐指数
1
解决办法
2054
查看次数

C#反序列化动态JSON

我有以下需要反序列化的Json字符串.

{"123456789":
  {"short_description":"Delivered",
     "detail_description":"Your item has been delivered"
   }
}
Run Code Online (Sandbox Code Playgroud)

第一个字段"123456789"是一个id号,所以基本上这个值可能会有所不同,具体取决于被查询的数据.

我在visual studio中使用C#.显然因为第一个字段的值可以改变,所以我不能使用预定义的类来反序列化JSON,因为该字段将用作类名,但字段值与类名不匹配.

有没有办法将其反序列化为某种动态类但仍然访问字段,就好像它是一个预定义的类?

或者有没有办法将其反序列化为预定义的类,即使类名不匹配?

提供此数据的服务是第三方服务,因此我无法控制它.

c# parsing json visual-studio deserialization

3
推荐指数
1
解决办法
8254
查看次数

圆形窗角平滑

您好

我使用windows API调用CreateRoundRgn和SetWindowRgn创建了一个带有圆边的窗口,但是圆角并不像使用GDI +绘制的圆角矩形那样平滑.反正有没有平滑窗口的角落?

procedure TPBSDashboardPanel.DefineWindowRegion;
var
  WindowRegion: HRGN;
begin
  if Assigned(Parent) then
  begin
    WindowRegion := CreateRoundRectRgn(0, 0, Width, Height, 20, 20);

    SetWindowRgn(Handle, WindowRegion, True);
  end;
end;
Run Code Online (Sandbox Code Playgroud)

windows delphi

2
推荐指数
1
解决办法
2492
查看次数

Delphi .cfg文件路径

您好我的项目CFG文件中的路径列表太长,我怎么能定义像$(BDS)这样的路径快捷方式谢谢

delphi path shortcut configuration-files

2
推荐指数
1
解决办法
959
查看次数

Delphi MainFormOnTaskBar模态窗口错误

您好

我正在使用Delphi 2007并将MainFormOnTaskBar属性设置为true.

我遇到的问题是这个.

如果从主窗体中打开子窗口,然后从刚刚打开的子窗口显示一个消息对话框.当您关闭消息对话框然后关闭子窗口时,主窗体将发送到您在屏幕上的任何其他应用程序的后面.

这种情况发生在Windows Vista和Windows 7下.有谁知道为什么会发生这种情况,我该如何解决?

delphi modal-dialog delphi-2007 windows-vista

1
推荐指数
1
解决办法
1864
查看次数

将包含重写的虚方法的类传递给dll

我有一个应用程序和一个DLL,都是用Delphi 2006编写的.

我有一个类来自基类,并覆盖了几个虚方法.

该类通过导出方法传递给DLL,导出的方法只知道基类.我从DLL中调用类上的方法,不调用重写的方法.

为了让它发挥作用,我需要做些什么吗?这根本不可能吗?

delphi dll virtual overriding

1
推荐指数
1
解决办法
295
查看次数

IIS 默认日期时间格式

我们有一个 WCF Web 服务返回一些包含日期时间值作为字符串的 xml。该值首先从数据库中读出,然后使用 .ToString() 附加到 xml 字符串。

我们有许多 Web 服务器正在运行,但这个特定的服务器正在将日期时间值转换为 24 小时值,我们需要它具有 12 小时值,但我不知道如何更改 IIS 默认日期格式。我尝试更改区域设置,并查看了 Web 服务的文化和 ui 文化值,它们都设置为“不变语言(不变国家/地区)”。

我认为它可能需要更改注册表。有谁知道如何更改 Web 服务的日期时间格式?

在此阶段我们无法更改代码,因此我唯一的选择是更新服务器本身。

它在 Windows Server 2008 上运行。

谢谢你

iis wcf datetime locale

1
推荐指数
1
解决办法
2458
查看次数

Delphi中的ASP.Net控件

我确定已经问过这个问题,但我找不到任何帖子.

是否可以在Delphi 2006 for Win32中使用ASP.net控件?我们想要在Delphi应用程序中使用一些Dev Express ASP.Net可视化控件(确切地说是图表控件).

这是可能的,如何做到,最好不需要购买更多的第三方组件.

谢谢.

asp.net delphi winapi

0
推荐指数
1
解决办法
138
查看次数