CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

调用DLL时出错,是什么原因呢。附代码

楼主mybcb(bcb)2004-12-03 00:19:30 在 .NET技术 / C# 提问

这是有asp.net的代码,我调用VC写的DLL,出现调用外部组件出错的现象,当我输入的密码正确时就出现错误,当用户名不正确或者密码不正确时,就不会出现这个错误了。请问是什么原因呢。                                                      
  int   i=0;  
  i=CheckLogin(User.Text,PassWord.Text   );  
  if(-2==i)  
  {  
  this.Label3.Text   ="发生来未知错误";  
  }  
  else   if(-1==i)  
  {  
  this.Label3.Text   ="用户帐号不存在";  
  }  
  else   if(0==i)  
  {  
  this.Label3.Text   ="用户密码不正确";  
  }  
  else   if(1==i)  
  {  
  this.Label3.Text   ="用户密码正确";  
  }  
   
   
  下面是在VC写的DLL代码  
  int   CCheckLogin::CheckLogin(CString   UserID,CString   PassWord)  
  {  
  if   (UserID=="")  
  {  
  return   -1;  
  }  
  if(PassWord.GetLength()!=8)  
  {  
  return   0;  
  }  
  ::CoInitialize(NULL);  
          HRESULT   hr;  
  int   i   =   0;  
  _bstr_t   ConnectionString="Provider=SQLOLEDB;SERVER=localhost;DATABASE=abc;UID=sa;PWD=1";//数据库连接串  
  _bstr_t   _user="sa";  
  _bstr_t   _password="1";  
  _ConnectionPtr   pconn;  
  _RecordsetPtr   prs;  
  _CommandPtr   pcmd;  
  hr   =   pconn.CreateInstance(__uuidof(Connection));  
  _bstr_t   txtSQL   ;  
  CString   tempPass;  
  pconn->Open(ConnectionString,_user,_password,0);  
   
  hr   =   prs.CreateInstance(__uuidof(Recordset));  
  prs->putref_ActiveConnection(pconn);  
  //prs->put_CacheSize(5000);    
  //prs->PutLockType(adLockReadOnly);  
  //prs->PutCursorType(adOpenStatic);  
  //prs->CursorLocation   =   adUseClient;  
  pcmd.CreateInstance(__uuidof(Command));  
  pcmd->putref_ActiveConnection(pconn);  
  pcmd->put_CommandType(adCmdText);  
   
   
  txtSQL=_bstr_t("select   *   from   t_user   where   Fuserid='"   +   (_bstr_t)UserID   +   "'");  
   
  pcmd->put_CommandText(txtSQL);  
   
  prs->Open((IDispatch   *)   pcmd,vtMissing,adOpenForwardOnly,adLockReadOnly,adCmdText);  
  if   (prs->adoEOF)  
  {  
  prs->Close();  
   
  pconn->Close();  
   
  return   -1;  
  }  
  else  
  {  
  tempPass=prs->GetCollect("FPass");  
   
  }  
  if(tempPass!=PassWord)  
  {  
  return   0;  
  }  
   
  txtSQL="insert   into   t_LoginMessage(FUserID,FDate,Fzt)   values('"   +   (_bstr_t)UserID   +   "',getdate(),1)";  
   
  pconn->BeginTrans();  
  try  
  {  
   
  pconn->Execute(txtSQL,NULL,1);  
   
  pconn->CommitTrans();  
  }  
  catch(_com_error   er)  
  {  
  pconn->RollbackTrans();  
  return   -2;  
  }  
   
  prs->Close();  
   
  pconn->Close();  
   
  return   1;  
  }  
   
  问题点数:100、回复次数:5Top

1 楼huleeyar(虚拟过客)回复于 2004-12-03 00:25:36 得分 20

包装成comTop

2 楼cxyPioneer(matt)回复于 2004-12-03 08:36:43 得分 20

upTop

3 楼dragonforfly(飘零)回复于 2004-12-03 08:47:00 得分 20

封装Top

4 楼51106354(大头)回复于 2004-12-03 09:07:26 得分 40

不可以这样显示调用,需要对DLL进行封装Top

5 楼mybcb(bcb)回复于 2004-12-03 09:20:31 得分 0

我已经封装成DLL了啊。在.net中是可以调用   的,当用户名和密码都正确时才会出错,当用户名不正确,或者密码不正确时,调用是正常的啊。Top

相关问题

  • 调用DLL 出错,以知代码 ?
  • DLL调用出错
  • 调用.dll出错
  • 弱问:DLL调用出错
  • Dll调用出错?who can help me?
  • vc调用vc的DLL出错??
  • Dll的调用为什么会出错?
  • 调用DLL出错,请高手指教!
  • 动态调用DLL出错为何?
  • dll调用出错,附源码

关键词

  • 代码
  • 密码
  • 用户
  • hr
  • 调用
  • 出错
  • 正确
  • pconn
  • prs
  • bstr

得分解答快速导航

  • 帖主:mybcb
  • huleeyar
  • cxyPioneer
  • dragonforfly
  • 51106354

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo