看看我这几行代码哪里出错了?可能与类型不匹配有关。
代码如下:
…………
char passline[100];
char userline[100];
…………
fgets(passline,100,fpass);//从文本文件中读出的一行。
fgets(userline,100,fuser);//从文本文件中读出的一行字符串
DWORD ret=WNetAddConnection2(&conresource,(LPCTSTR)passline,(LPCTSTR)userline,CONNECT_UPDATE_PROFILE);
用cout<<ret<<endl;输出错误值为2202,该值的意思是无效的用户名。但改成下面的形式也不对:
DWORD ret=WNetAddConnection2(&conresource,_T(passline),_T(userline),CONNECT_UPDATE_PROFILE);//编译时报如下错误 error C2065: 'Lpassline' : undeclared identifier。如果输出错误值为1326,意思是无效的用户名或错误的密码。
应该如何将读到的用户名和密码传送到DWORD ret=WNetAddConnection2()这个函数中?
我认为应该是类型转换时出问题,但又不知该如何改。郁闷!!

解决方案 »

  1.   

    单步跟踪一下userline和passline的内容。
      

  2.   

    WNetAddConnection2
    这个函数需要的类型为unicode
    所以需要你把userline转换为unicode类型
    有一个函数可以用的
    不过我不记得了
      

  3.   

    steedhorse(晨星):我单步跟踪结果是这样的:如果文本文件中一行的内容为“Administrator”,则userline的内容为Administratorl,后边多了一个字母“l”;如果文本文件中的内容为“123”,则passline的内容为“123l”,后边同样多了一个字母“l”。不知这是怎么回事?
      

  4.   

    那就是说至少暂时还不是WNetAddConnection2的问题。
    怎么会这样啊?
      

  5.   

    按照MSDN里头对fgets的说明,最后有可能多一个换行符而不是l呀。
      

  6.   

    steedhorse(晨星) :fgets()从文本文件中读出的字符串是以'\0'结束的。我不知道怎么处理。我调试时确实每个串后面都多了个字母“l”,我把代码发给你你能否帮我看看?我郁闷死了。我已经没有任何办法了。