[QPlugins] DLL 中插件提供窗口服务指南

QPlugins 为了简化大家开发带有窗体的插件,提供了 IQFormService 接口的封装实现。要使用该接口,需要按以下步骤执行: 【宿主程序】 1、如果宿主程序是 VCL 程序,在某个模块的 uses 小节,加入 qplugins.vcl.messages 单元,以便引入对 Windows 消息的扩展支持服务;

获取动态链接库在进程中的加载地址

我们知道,Windows下DLL被加载到进程中时,可能发生地址冲突而被重定位,那么我们如何获取这些进程的重定位地址呢?实际上很简单,通过GetModuleHandle函数可以获取到已经被加载到内存中的DLL映像的句柄,这个句柄的值就是DLL被加载的映像基准地址。要列举出所有的模块映像加载地址,用EnumProcessM

Delphi调用C语言接口的几点小提示

1、对方给你DLL可能未声明正确的调用方式。一般来说接口都是stdcall或cdecl两种形式的,当然COM时有safecall,但COM对象一般直接导入,不需要自己手写,所以没啥问题。 2、将C语言的char/char *转换到Delphi时,一定要注意它对应的类型不能简单的理解为PChar,因为PChar的定义是有

线程正确的退出等待方式

一个线程如果退出时,我们习惯写下如下代码:

但在DLL中调用会在WaitFor的地方出现死等的现象,线程无法退出。 改为下面的代码可以解决:

对于Delphi早期版本,TThread的Fi