小编And*_*and的帖子

Delphi:使用LoadLibrary加载DLL的奇怪行为

我正在用Delphi构建一个插件系统(你们中的一些人一直在帮助我完成这项任务).

要搜索DLL文件,我正在使用TSearchRec,它在dll文件的exe路径中搜索,然后我使用LoadLibrary来访问它们.然后,如果暴露某个函数(使用GetProcAddress),我将其作为插件加载.如果没有,则执行FreeLibrary,然后继续下一个文件.

在测试的时候,我注意到当TSearchRec找到了"borlndmm.dll"时,它恰好在那个路径中,它加载,并搜索我的插件函数,当然没有找到,但是如果执行FreeLibrary,我得到访问冲突.

其他no-plugin dll在同一路径中,如libmariadb.dll,可以安全地释放,没有错误.

当然,这很容易修复,让我的插件dll在自己的路径中,没有任何其他dll文件,这甚至出于性能原因会更好,因为它不必加载任何它不应该的库.

但我想了解它为什么会发生.有任何想法吗?

谢谢Nuno Picado

delphi dll access-violation

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

将字符串从文本文件读取到Pascal中的Array中

使用此程序,我试图读取文件并将其随机打印到控制台。我想知道是否必须为此使用数组。例如,我可以将字符串分配到数组中,然后从数组中随机打印。但是,我不确定该如何处理。另一个问题是,当前程序无法从文件中读取第一行。我有一个text.txt包含

1. ABC
2. ABC
...
6. ABC
Run Code Online (Sandbox Code Playgroud)

下面是我的代码。

type
  arr = record 
  end;

var
  x: text;
  s: string;
  SpacePos: word;
  myArray: array of arr;
  i: byte;

begin
  Assign(x, 'text.txt');
  reset(x);
  readln(x, s); 
  SetLength(myArray, 0);
  while not eof(x) do
  begin
    SetLength(myArray, Length(myArray) + 1);
    readln(x, s);
    WriteLn(s);
  end;
end.
Run Code Online (Sandbox Code Playgroud)

请让我知道如何解决这个问题!

delphi pascal freepascal

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

如何设置任务栏的进度指示器?

在执行长时间操作时,某些应用程序在任务栏中的应用程序图标后面显示一个进度条。

任务栏的屏幕快照,其中一个按钮带有进度条。

...

任务栏的屏幕快照,其中一个按钮带有进度条。

如何在Delphi应用程序中设置进度指示器?

delphi taskbar delphi-xe7

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

Delphi 组件属性声明

最近,我在组件中遇到了以下属性声明TDBNavigator

property Enabled;
[Default(False)]     <--------------------
property Flat: Boolean read FFlat write SetFlat default False;
Run Code Online (Sandbox Code Playgroud)

该指令[Default(False)]是什么意思?它的主要目的是什么?

delphi components properties declaration

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

在WINAPI中画一个"TPanel"?

我想用一个"drop-box"扩展一个打开/保存对话框,它应该看起来像一个TPanel(斜角).代码已经存在 - 我使用带有WNDCLASS名称"Edit"的CreateWindowEx().

我已经搜索了一个解决方案,用纯WinAPI绘制TPanel(分别是斜面STATIC),但没有找到任何东西.

MS Spy ++告诉我,TPanel的WNDCLASS名称为"TPanel"(听起来不像纯WinAPI?)

我现在尝试了以下代码,但是当我尝试使用类名"TPanel"而不是"EDIT"或"STATIC"时,我会得到一个AV.

procedure TForm1.Button1Click(Sender: TObject);
begin
  CreateWindowEx(
  WS_EX_LEFT or WS_EX_LTRREADING or WS_EX_RIGHTSCROLLBAR or WS_EX_CONTROLPARENT,
  'TPanel',
  'Hello World',
  WS_CHILDWINDOW or WS_VISIBLE or WS_CLIPSIBLINGS or WS_CLIPCHILDREN,
  0, 0, 100, 100,
  Handle, 0, hInstance, nil);
end;
Run Code Online (Sandbox Code Playgroud)

你能帮我么?

关心
Daniel Marschall

PS:你能告诉我如何在StackOverflow.com中编写delphi高亮显示的代码吗?

delphi winapi panel topendialog

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

我正在寻找比德尔福的GDI +更好的东西

我正在寻找一些像GDI +这样不需要运行时库的单元.我只需要文字和图像效果.

delphi graphics gdi+

0
推荐指数
2
解决办法
1189
查看次数

这个表达是什么意思?

我正在编写一个关于图像检索的小应用程序,但我无法理解这个数学表达式的含义

d ^ 2 = || x - p || ^ 2其中x和p是双元素向量.

有人可以告诉我这是什么意思||,我怎样才能将一个向量提升?

编辑感谢espertus回答我知道|| x - p || ^ 2是欧几里德距离.但是我也遇到了这个表达式|| p || ^ 2.那是什么意思?我认为它不可能是欧几里德的距离.还有什么呢?

math

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

从Exchange服务器(ews)获取日历事件?

如何使用Delphi(不使用Outlook)从特定Exchange帐户获取事件?

delphi exchange-server

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

如何捕获动态创建控件的事件?

我是Delphi和Firemonkey的新手.

让我说我动态地(在运行时)在我的表单上创建一个新按钮,我想抓住它的OnCLick事件.

如何将我的控制绑定到onclick程序?

谢谢

delphi firemonkey

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

写入 Unicode (UTF-8) 文本文件

如何在 Delphi 中编写 Unicode 文本文件?

目前我只使用AssignFile,RewriteFileWriteln,但这不会写 Unicode 字符。

delphi unicode character-encoding text-files delphi-10.3-rio

0
推荐指数
2
解决办法
417
查看次数

资源png未找到

我创建了一个名为glyfs.rc的png资源文件
GLYF_CONFEDITOR RCDATA confeditor.png
GLYF_EXTRAFE RCDATA extrafe.png
.......

我在我的项目中添加它.
放一个TsBitBtn(它是一个alphaskin组件类)并尝试sbitbtn1.Glyph.LoadFromResourceName(HInstance,'GLYF_CONFEDITOR');
在运行时从资源文件加载 glyf我得到名称为'GLYF_CONFEDITOR'的错误资源文件未找到.

我究竟做错了什么?

我用于png的3方工具是从这里下载
的pngdelphi但是sbitbtn加载原生的png文件...

delphi png delphi-7

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