CHAR、TCHAR、WCHAR_T之间的区别与问题

今天在使用LibXIStream 对视频采集卡进行开发时遇到了给的sample中的程序没问题,而自己写的却无论如何都会失败,打不开相应的采集卡。具体问题时出在这样一个数据结构上的:

typedef struct _VIDEO_CAPTURE_INFO {
XI_ADAPTER_MODEL adapterModel;
XI_DEVICE_TYPE deviceType;
TCHAR szName[_MAX_VIDEO_CAPTURE_NAME];
TCHAR szDShowID[_MAX_VIDEO_CAPTURE_DSHOW_ID];
} VIDEO_CAPTURE_INFO;

其中的两个字符串数组szName与szDShowID要么为空,要么为正确赋值成功,导致之后的功能无法正常运行。在纠结了一段时间后,终于把问题集中到了TCHAR上,然后我分别在sample的例子中和我自己写的程序中找到了对TCHAR的定义:

#ifdef   UNICODE     
  typedef   wchar_t   TCHAR;     
#else     
  typedef   unsigned   char   TCHAR;     
#endif    

然后发现了问题就是出在编码方式上,两个程序一个使用的UNICODE编码,而另一个不是,所以才导致了同样的代码,一个能正确执行,另一个却不行的情况。

转载于:https://www.cnblogs.com/Bismarck/p/6123167.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值