D
DreamTiger
Unregistered / Unconfirmed
GUEST, unregistred user!
我的主程序中有一个函数:
function GetTextChar;stdcall;
begin
if assigned(MainForm.CurrentChild) then
begin
result := PChar(MainForm.CurrentChild.Editor.Lines.Text);
end
else
result := '';
end;
//把它exports
exports
GetText;
在dll中调用:
type
TGetString=functionchar;stdcall;
调用:
sText := String(TGetString(GetProcAddress(AOwner,'GetText')));
//AOwner是主程序的HInstance
问题是当
MainForm.CurrentChild.Editor.Lines.Text很短的时候,传递没问题,
当MainForm.CurrentChild.Editor.Lines.Text很长的时候,传递就出错了。
我搞不懂怎么回事。
function GetTextChar;stdcall;
begin
if assigned(MainForm.CurrentChild) then
begin
result := PChar(MainForm.CurrentChild.Editor.Lines.Text);
end
else
result := '';
end;
//把它exports
exports
GetText;
在dll中调用:
type
TGetString=functionchar;stdcall;
调用:
sText := String(TGetString(GetProcAddress(AOwner,'GetText')));
//AOwner是主程序的HInstance
问题是当
MainForm.CurrentChild.Editor.Lines.Text很短的时候,传递没问题,
当MainForm.CurrentChild.Editor.Lines.Text很长的时候,传递就出错了。
我搞不懂怎么回事。