在2007下面,我创建TStringList,使用完后free就不行,报错说是一个非法的指针,但是之前我又没有释放。而且用TStrings就没问题。
还有就是,我用Result := PAnsiChar(AnsiString(s));这种方式转换string为pchar不行('Abstract Error'.),以前版本记得是可以的不知道大家有没有碰到这种情况,2007怎么变了这么多啊???
还有就是,我用Result := PAnsiChar(AnsiString(s));这种方式转换string为pchar不行('Abstract Error'.),以前版本记得是可以的不知道大家有没有碰到这种情况,2007怎么变了这么多啊???
可以用 @s[1] 代替 PChar(s)
var
vstr:TStringList;
begin
vstr := TStringList.Create;
vstr.add('进行操作');
vstr.free;
end;
begin
strList:= TStrings.create;
//use StrList
end;TStrings.create;这句的问题。 具体的add等方法和函数都在子类中实现的,父类只定义原型,当然要出错误;
一般是不小心写成这样。 看看就知道原因,提示'Abstract Error'已经说的很清楚了
var strList: TStrings;
begin
strList:= TStringList.create; 就可以
FLines: TStringList;
FLines := TStringList.Create;
FLines.free.这里报错FLines: TStrings;
FLines := TStringList.Create;
FLines.free.这就没有问题很奇怪的,但是过了几天我把原来注释掉的代码取消掉注释就可以用了,可能环境还是内存里有问题,说不清楚。。