【发布时间】:2015-04-07 16:56:08
【问题描述】:
我目前正在尝试创建一个测试程序并将其传递给一个字符串。该函数检查字符串是否相等。问题是,当测试运行时,我在过程中传递的字符串上收到 EAccessViolation 的访问冲突错误。我知道这是一个内存声明问题,但我不知道如何解决它。
这是我的代码:
声明
TestTForm1 = class(TTestCase)
strict private
FForm1: TForm1;
public
procedure SetUp; override;
procedure TearDown; override;
published
procedure TestCompareListBoxToFile(Method : String);
end;
打电话
TestCompareListBoxToFile('Save');
程序
procedure TestTForm1.TestCompareListBoxToFile(Method : String);
begin
Check('Save' = Method,'they dont match');
end;
我是 delphi 的新手,所以如果有什么我遗漏的,请告诉我。请在回复中具体说明。谢谢。
【问题讨论】:
-
你在哪里声明
TestCompareListBoxToFile过程? (我怀疑它在 DLL 中,这意味着您违反了标准“不要将字符串传递给 DLL,因为它们不兼容”。) -
在TestTForm1 = class(TTestCase)之后
-
没有意义。鉴于您发布的代码,绝对不会导致 AV。
-
没有证据表明 A/V 是如何在这里发生的。你确定这是它发生的代码吗?另一方面,您不应该在
published下放置任何程序 - 该部分保留用于在对象检查器中显示组件和控件的属性。但这也不会引起您的问题。 -
很难过,但我 100% 确定这就是它正在发生的地方。
标签: string delphi access-violation dunit