error C2664: “strcmp”: 不能将参数 1 从“WCHAR [260]”转换为“const char *”

源程序:

#include   <iostream>
#include   <windows.h>
#include   <cstring>
using   namespace   std;

 

#define MAX_PATH 1028

void   ListFile(char*   szDir)
{

HANDLE     hFindFile;
WIN32_FIND_DATA     FileData;

char     szTempDir[MAX_PATH+1];
hFindFile   =   FindFirstFile(szTempDir,&FileData);

...

}

void main() {

   char       szPath[MAX_PATH+1];
   while(cin> > szPath)
   {
     if(szPath[strlen(szPath)-1]!= '\\ ')
     strcat(szPath, "\\ ");
     ListFile(szPath);
   }

}

error   C2664:   “strcmp”:   不能将参数   1   从“WCHAR   [260]”转换为“const   char   *”

 

解决方法:

1、vs2005   项目-> XXX属性-> 配置属性-> 常规-> 字符集 -> “使用unicode字符集” 改为   “未设置”  就去掉了unicode支持;(已经验证过

2、也可以在#include   <windows.h> 之前加上一句
#undef   UNICODE (未验证

3、你全部使用 TCHAR替换char
字符串常量用_T()括起来,如_T( "* ")(未验证

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值