R
rsina
Unregistered / Unconfirmed
GUEST, unregistred user!
最近写一个小程序,就是从公司网站上下载一些数据(文本),由于要分模块,我写了一个DLL,很简单,如下:
with TIdHttp.Create(nil) do
try
Sresult := Get('http://www.xxx.com/update.txt');
finally
Free;
end;
//showmessage('');
result := pchar(Sresult);
这样的一个简单函数,我使用exe调用的时候发现,如果update.txt很大的时候,exe调用DLL返回的数据就只有update.txt的前一部分。但是!!!大家注意我这个转折连词,但是我只要在DLL中,加一行showmessage(''),无论我showmessage什么,那么DLL都会正确的返回update.txt的内容,无论update.txt内容有多大!
真是奇怪了,我一开始以为idhttp的缓冲区设置过小,于是在代码中,指定了缓冲区大小超过update.txt的大小,但是不行。还是老问题,奇怪的是我即使不加大缓冲区大小,只要在DLL中showmessage一下就可以了。
DLL是动态加载的。郁闷啊。。郁闷。。。。
with TIdHttp.Create(nil) do
try
Sresult := Get('http://www.xxx.com/update.txt');
finally
Free;
end;
//showmessage('');
result := pchar(Sresult);
这样的一个简单函数,我使用exe调用的时候发现,如果update.txt很大的时候,exe调用DLL返回的数据就只有update.txt的前一部分。但是!!!大家注意我这个转折连词,但是我只要在DLL中,加一行showmessage(''),无论我showmessage什么,那么DLL都会正确的返回update.txt的内容,无论update.txt内容有多大!
真是奇怪了,我一开始以为idhttp的缓冲区设置过小,于是在代码中,指定了缓冲区大小超过update.txt的大小,但是不行。还是老问题,奇怪的是我即使不加大缓冲区大小,只要在DLL中showmessage一下就可以了。
DLL是动态加载的。郁闷啊。。郁闷。。。。