大虾救命!我的delphi程序怎么不行了?(200分)

  • 主题发起人 主题发起人 folmorse
  • 开始时间 开始时间
F

folmorse

Unregistered / Unconfirmed
GUEST, unregistred user!
程序中使用了NMFTP控件、winInet.dll,我的环境:Win2K Server+Delphi5,
我的机器测试没有任何问题,但是到NT4.0,win98,win95平台上都出现问题,在NT4.0
出现“NT4.dll出错”,win98上出现"Kenrel.dll出错”!
T4.0+delphi5的环境下重新编译过,编译过程没有任何错误,但运行
我的ftp模块,问题依然存在。
不知怎么回事?请大虾出手! //bow...
 
我本来以为这种事情只有用VC++的新手
才会碰到这种问题.
没想到用DELPHI的也会出现这个问题.

十有八九,你的程序不够强健
或者说
DELHPI在这方面包装的不够强健

最不可能就是NT/98的环境不完整或有问题
 
不同的os需要不同的dll
 
能不能公布以下你的代码?
 
是否使用了4.0以下版本还不支持的函数?
 
估计你动态调用了某个DLL,所以在编译时不会出现错误信息,你把它改为静态调用看看,
看在编译的时候会出现什么错误信息,多半是说某个函数没有定义,这样就可以知道问题
所在了。
 
如果说我的程序由问题,我愿意把源代码附上,请大虾指点!
uses
....,winInet,...NMFTP...
procedure fm_upload.bt_uploadclick(Sender:Tobject);
begin
if Not InternetCheckConnection(Pchar('http://'+test_url), 1, 0) then
begin
ShowMessage('请检查一下你的机器是否连上internet');
exit;
end;
//连接FTP服务器
NMFTP1.Host:=host_url;
NMFTP1.Port:=21;
NMFTP1.UserID:='xxx';
NMFTP1.Password:='xxx';
NMFTP1.Connect;
finally
//on E:Exception do
// ShowMessage('请你确定你的网络是否连到Internet?');
//重新恢复最初设置
NMFTP1.Disconnect;
SetCurrentdir(Pub_Currentdir);
Screen.Cursor:=crDefault;
end;

end;
 
问题肯定是出在InternetCheckConnection这个函数上面,我查了一下wininet.dll,里面
并没有InternetCheckConnection这个函数,只有InternetCheckConnectionA和
InternetCheckConnectionW这两个函数,98和NT4都是这样的,我没有2000,不知道2000底
下是怎么样,你自已看看。
 
请教父说说还有什么方法实现判断是否连上Internet,我已经试过了好几个方法,
你说的InternetCheckConnectionA和InternetCheckConnectionW,我在winNT4.0
上调试没成功。请问还有别的方法吗?还有如何察看WinInet里面有什么函数?
请指点!
 
使用 InternetCheckConnectionA ,要求 IE 3.0 或更高版本。
PChar 属于 Ansi 字符串。
 
据说可以通过注册表来判断
HKEY_LOCAL_MACHIE/System/CurrentControlSet/Servies/RemoteAcces分支下,当计算机未连
通时,Remote Connection的键值为00 00 00 00,连通时,为01 00 00 00。
在书上看到的,没试过。 :)
要看到WinInet里面有什么函数的话,你可以右击相应的DLL,在选快速查看就可以了。
 
接受答案了.
 
后退
顶部