zoukankan      html  css  js  c++  java
  • 【VS2013编译DirectX Tutorials时遇到的错误】"const wchar_t *" 类型的实参与 "LPCSTR" 类型的形参不兼容

    本文为大便一箩筐的原创内容,转载请注明出处,谢谢:http://www.cnblogs.com/dbylk/p/3696367.html 


    通过查看LPCSTR的定义:

    typedef _Null_terminated_ CONST CHAR *LPCSTR, *PCSTR; 

    可以知道LPCSTR代表了const char *类型,它是一个指向以''结尾的8位(单字节)ANSI字符数组的常量指针,

    而const wchar_t *类型是一个指向''结尾的16位(双字节)Unicode字符数组的常量指针.

    在VS2013编译器中直接输入的字符串常量(如“abc”)默认是以const char *的格式(即ANSI编码)储存的,因此会导致类型不匹配的编译错误。

     

    解决的办法有两个:

    第一个方法是右击“解决方案资源管理器”中的项目,“属性→配置属性→常规→项目默认值→字符集”,默认的选项是“使用多字节字符集”,将它改为“使用Unicode字符集”即可。

    这样,输入的字符串会默认以const wchar_t *格式储存。

    第二个方法是使用_T宏,它在“tchar.h”中定义,它能够自动识别当前编译器字符串的储存格式并做出相应转换,避免这种类型的编译错误。

    具体使用方法为:将“abc”改为_T("abc")。

  • 相关阅读:
    JSP的作用域与COOKIE
    jsp数据交互
    JSP基本使用方式
    分层架构的初步理解
    JDBC的基本应用
    HTML5新标签
    弹性布局
    解决js获取兄弟节点的兼容问题
    js去重函数(封装函数)
    封装日期函数
  • 原文地址:https://www.cnblogs.com/dbylk/p/3696367.html
Copyright © 2011-2022 走看看