打印机句柄无效效 异常是什么引起的

句柄无效 错误是什么引起的_百度知道
句柄无效 错误是什么引起的
我有更好的答案
句柄无效通常是编程的错误,应该是丢失或更改了某些系统文件吧
采纳率:37%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。关于蛋疼的句柄无效。。
[问题点数:40分,结帖人lfl569817]
关于蛋疼的句柄无效。。
[问题点数:40分,结帖人lfl569817]
只显示楼主
取消只显示楼主
匿名用户不能发表回复!|新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
小富即安, 积分 2038, 距离下一级还需 2962 积分
论坛徽章:1
本帖最后由 framily 于
12:53 编辑
void CMFCApplication1Dlg::FileUpload(LPCTSTR serverName, unsigned short port, LPCTSTR username, LPCTSTR password, LPCTSTR localFileName, LPCTSTR serverFileName)
& & CInternetSession InetS
& & CFtpConnection *ftp =
& && &&&ftp = InetSession.GetFtpConnection(serverName, username, password, port, 1);
& & catch (CInternetException *pEx){
& && &&&MessageBox(_T(&不能连接服务器!请确认服务已开启&), _T(&错误&));
& && &&&InetSession.Close();
& && &&&if (ftp != NULL)
& && && && &
& && && && &ftp = NULL;
& && &&&pEx-&Delete();
& & bool b = FtpPutFile(ftp, localFileName, serverFileName, FTP_TRANSFER_TYPE_BINARY, 0);
& & int n = GetLastError();
& & cout && b &&
n = 6,,通过错误查找工具发现错误提示是句柄无效,求教,怎么回事,怎么改??
大富大贵, 积分 11620, 距离下一级还需 8380 积分
论坛徽章:250
ftp-&PutFile(......
小富即安, 积分 2038, 距离下一级还需 2962 积分
论坛徽章:1
嗯,,成功了,,这是为什么呢。。
小富即安, 积分 2038, 距离下一级还需 2962 积分
论坛徽章:1
& & 之前用InnetOpen建立句柄时,是可以用FtpPutFile的。。。代码如下,,之前的。。。//HINTERNET hI
//HINTERNET hFtpS
//hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
//if (hInternet == NULL)
//{
//& &
//}
//else
//{
//& & hFtpSession = InternetConnect(hInternet, serverName, INTERNET_DEFAULT_FTP_PORT, _T(&ghost&), _T(&ghost&), INTERNET_SERVICE_FTP, 0, 0);
//& & if (hFtpSession == NULL)
//& & {
//& && &&&
//& & }
//& & else
//& & {
//& && &&&if (!FtpPutFile(hFtpSession, localFileName, serverFileName, FTP_TRANSFER_TYPE_BINARY, 0))
//& && &&&{
//& && && && &
//& && &&&}
//& & }
//}复制代码
大富大贵, 积分 11620, 距离下一级还需 8380 积分
论坛徽章:250
framily 发表于
回复 3# framily
句柄不是MFC对象指针
小富即安, 积分 2038, 距离下一级还需 2962 积分
论坛徽章:1
& & 虽然不甚明了,,,先这样用吧,,谢谢大哥。。。
小富即安, 积分 2038, 距离下一级还需 2962 积分
论坛徽章:1
& & 大哥,我想做个断点续传,但是么思路,不会做,,大哥,给留一段代码,,让小弟学习下吧,,,
大富大贵, 积分 11620, 距离下一级还需 8380 积分
论坛徽章:250
framily 发表于
回复 2# hellioncu
我没有现成的代码。你先去看FTP协议,就知道怎么断点续传了
小富即安, 积分 2038, 距离下一级还需 2962 积分
论坛徽章:1
& & 郁闷啊,FtpPutFile文件传输不能全部传输,,,700多兆的文件,,只传了200多兆,有时候10几兆,,好的情况下也差好几十兆,,求破??
小富即安, 积分 2038, 距离下一级还需 2962 积分
论坛徽章:1
本帖最后由 framily 于
17:55 编辑
void CMFCApplication1Dlg::FileUpload(LPCTSTR serverName, unsigned short port, LPCTSTR username, LPCTSTR password, LPCTSTR localFileName, LPCTSTR serverFileName)
{
& & CInternetSession InetS
& & CFtpConnection *ftp =
& & int retryTime = 0;
& && &&&try{
& && && && &ftp = InetSession.GetFtpConnection(serverName, username, password, port, 1);&&
& && &&&}
& && &&&catch (CInternetException *pEx) {
& && && && &InetSession.Close();
& && && && &if (ftp != NULL)
& && && && &{
& && && && && &
& && && && && & ftp = NULL;
& && && && &}
& && && && &pEx-&Delete();
& && && && &
& && &&&}
& && &&&while (!ftp-&PutFile(localFileName, serverFileName) && retryTime & 5)
& && &&&{
& && && && &if (12002 == GetLastError())
& && && && &{
& && && && && & retryTime++;
& && && && && &
& && && && &}
& && &&&}
& && &&&// bool b = FtpPutFile(ftp, localFileName, serverFileName, FTP_TRANSFER_TYPE_BINARY, 0);
& && &&&ftp-&Close();
& && &&&InetSession.Close();
& && &&&if (ftp != NULL)
& && &&&{
& && && && &
& && && && &ftp = NULL;
& && &&&}
}复制代码
北京盛拓优讯信息技术有限公司. 版权所有 京ICP备号 北京市公安局海淀分局网监中心备案编号:22
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处句柄无效是什么意思 句柄无效怎么解决_百度知道
句柄无效是什么意思 句柄无效怎么解决
我有更好的答案
处理方法:此警告音是否由于安装了第三方软件后提示的,如果是建议卸载掉不要使用,或查看是不是游戏本身遇到了问题,可以卸载重新下载安装。系统不能加载用户配置, 但能加载默认配置。句柄无效通常是编程的错误,但你的情况显然不可能是编程的问题,应该是丢失或更改了某些系统文件。我猜可能是你的dircetx错误,或者是丢失了某些动态连接库的DLL文件。你重新下载一个directx9.0c,安装试试。如果还不行,就重装操作系统,这样做比较省事。其他对于句柄无效的相关解释:(仅供参考!)所谓句柄实际上是一个数据,是一个Long (整长型)的数据。句柄是WONDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。WINDOWS句柄有点象C语言中的文件句柄。从上面的定义中的我们可以看到,句柄是一个标识符,是拿来标识对象或者项目的,它就象我们的姓名一样,每个人都会有一个,不同的人的姓名不一样,但是,也可能有一个名字和你一样的人。从数据类型上来看它只是一个16位的无符号整数。应用程序几乎总是通过调用一个WINDOWS函数来获得一个句柄,之后其他的WINDOWS函数就可以使用该句柄,以引用相应的对象。如果想更透彻一点地认识句柄,我可以告诉大家,句柄是一种指向指针的指针。我们知道,所谓指针是一种内存地址。应用程序启动后,组成这个程序的各对象是住留在内存的。如果简单地理解,似乎我们只要获知这个内存的首地址,那么就可以随时用这个地址访问对象。但是,如果您真的这样认为,那么您就大错特错了。我们知道,Windows是一个以虚拟内存为基础的操作系统。在这种系统环境下,Windows内存管理器经常在内存中来回移动对象,依此来满足各种应用程序的内存需要。对象被移动意味着它的地址变化了。如果地址总是如此变化,我们该到哪里去找该对象呢?为了解决这个问题,Windows操作系统为各应用程序腾出一些内存储地址,用来专门登记各应用对象在内存中的地址变化,而这个地址(存储单元的位置)本身是不变的。Windows内存管理器在移动对象在内存中的位置后,把对象新的地址告知这个句柄地址来保存。这样我们只需记住这个句柄地址就可以间接地知道对象具体在内存中的哪个位置。这个地址是在对象装载(Load)时由系统分配给的,当系统卸载时(Unload)又释放给系统。句柄地址(稳定)→记载着对象在内存中的地址→对象在内存中的地址(不稳定)→实际对象本质:WINDOWS程序中并不是用物理地址来标识一个内存块,文件,任务或动态装入模块的,相反的,WINDOWS API给这些项目分配确定的句柄,并将句柄返回给应用程序,然后通过句柄来进行操作。但是必须注意的是程序每次从新启动,系统不能保证分配给这个程序的句柄还是原来的那个句柄,而且绝大多数情况的确不一样的。假如我们把进入电影院看电影看成是一个应用程序的启动运行,那么系统给应用程序分配的句柄总是不一样,这和每次电影院售给我们的门票总是不同的一个座位是一样的道理。
采纳率:68%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 句柄无效怎么解决 的文章

 

随机推荐