我的三层系统怎么了?在显示窗口时出现了“Error reading from socket.”,程序里的数据处理也就停止了,这是怎么回事啊? (50分)

  • 主题发起人 主题发起人 szkok
  • 开始时间 开始时间
S

szkok

Unregistered / Unconfirmed
GUEST, unregistred user!
还有,这个系统一直用了差不多两个月,一直很正常,使用TSocketConnection连接。今天开始客户端就出了这个错误,检查更换madis.dll还是不行,机子也没有发现病毒,现在真不知怎么办了,大家帮帮我吧,谢谢!
好像没听说使用TSocketConnection需要许可权的,是吗?
 
regsvr32 madis.dll
 
可以重新注册一下madis.dll,最好是先删除原先的注册。
 
多谢两位!
还有一个这样的错误:在显示窗口时出现了“Error reading from socket.”,程序里的数据处理也就停止了,这是怎么回事啊?
 
这说明SocketConnection己经与服务器断开连接了。
 
Midas.dll是不需要注册的,只要放在程序能搜索到的目录
系统目录,或当前目录就可以的
修改系统的DSIntf.Pas 并复制到当前目录
这样,midas.dll 就不用注册了
procedure CheckDbClient(const CLSID: TGUID);
var
Size: Integer;
FileName: string;
begin
if DbClientHandle = 0 then
begin
EnterCriticalSection(Loading);
try
if DbClientHandle = 0 then
begin
Size := 256;
SetLength(FileName, Size);
if RegQueryValue(HKEY_CLASSES_ROOT, PChar(Format('CLSID/%s/InProcServer32',
[GUIDToString(CLSID)])), PChar(FileName), Size) = ERROR_SUCCESS then
SetLength(FileName, Size) else
begin
FileName := MIDAS_DLL;
try
RegisterComServer(FileName);
except
end;
end;
FileName := MIDAS_DLL;
// add by lich 2004.3.3
DbClientHandle := LoadLibrary(PChar(FileName));
if DbClientHandle = 0 then
raise Exception.CreateRes(@SErrorLoadingMidas);
DllGetClassObject := GetProcAddress(DbClientHandle, 'DllGetClassObject');
end;
finally
LeaveCriticalSection(Loading);
end;
end;
end;
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部