德尔福单位,我有一个名为“语境”全球记录:德尔福:分配给全球纪录 - 全球记录不改变
interface
type
TContext = record
...
end;
var
context: TContext;
我也有在这个单元中的初始化程序,采取背景:
interface
procedure Init(AContext: TContext);
的初始化过程里面,我试着给定上下文分配给全球范围内:
implementation
procedure Init(AContext: TContext);
begin
context := AContext;
end;
佛由于某种原因,作业后的全局范围仍然是空的。这是为什么? 在过程中声明一个局部变量,并赋予它按预期工作。
我应该提到的是,这个单元住在一个dll中,而init程序是从exe中调用的。 声明一个全局记录,或声明几个全局字符串没有区别。分配的值将丢失。
问候,
-Vegar
如果你按住Ctrl键单击在程序“初始化”的“语境”的IDE应该带你到的有关情况。 – 2010-07-08 09:08:16
关于您的更新:IIUC“丢失”的值是字符串。混合字符串和DLL总是很棘手。你使用ShareMem,FastMM或类似的东西吗? – 2010-07-08 10:18:12
您尚未演示如何在EXE中调用该函数。这个函数声明在EXE端看起来如何? – 2010-07-08 14:17:32