新
新手101010
Unregistered / Unconfirmed
GUEST, unregistred user!
我在做程序时出现这样的问题,当前程序出现错误
procedure TForm1.Button1Click(Sender: TObject);
var
dllhand:THandle;
str:TStringList;
stream:Tstringstream;
begin
try
stream:=TStringStream.Create('skdfjs')
//位置1
{如果把该<位置1>的内容放到<位置2>后,并把<位置3>的内容加为注释(因为<位置3>也有错误),则程序不会出错,否则出现“Invalid pointer operation”的错误}
dllHand:=LoadLibrary(pchar('operation.dll'));
str:=TStringList.Create;
if dllhand=0 then
begin
showmessage('Don''t load operation.dll');
exit;
end;
getkind:=GetProcAddress(dllhand,pchar('GetKind'))
//位置2
str:=getkind(DM.DataModule1.ADOT_Pub);
Memo1.Lines.AddStrings(str);
finally
freelibrary(dllhand)
//位置4
Str.Free
//位置3
{在<位置1>中的内容放在正确位置的时候,该位置出现错误,如果它们放到<位置4>的前面则不会}
Stream.Free;
end;
end;
请高手说明一下这是什么原因?
procedure TForm1.Button1Click(Sender: TObject);
var
dllhand:THandle;
str:TStringList;
stream:Tstringstream;
begin
try
stream:=TStringStream.Create('skdfjs')
//位置1
{如果把该<位置1>的内容放到<位置2>后,并把<位置3>的内容加为注释(因为<位置3>也有错误),则程序不会出错,否则出现“Invalid pointer operation”的错误}
dllHand:=LoadLibrary(pchar('operation.dll'));
str:=TStringList.Create;
if dllhand=0 then
begin
showmessage('Don''t load operation.dll');
exit;
end;
getkind:=GetProcAddress(dllhand,pchar('GetKind'))
//位置2
str:=getkind(DM.DataModule1.ADOT_Pub);
Memo1.Lines.AddStrings(str);
finally
freelibrary(dllhand)
//位置4
Str.Free
//位置3
{在<位置1>中的内容放在正确位置的时候,该位置出现错误,如果它们放到<位置4>的前面则不会}
Stream.Free;
end;
end;
请高手说明一下这是什么原因?