首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >windows函数中的char*或LPCWSTR

windows函数中的char*或LPCWSTR
EN

Stack Overflow用户
提问于 2013-05-31 17:12:28
回答 2查看 395关注 0票数 2

我遵循了使用标准windows.h头文件创建Windows - Window的教程。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
WNDCLASSEX wc;
...
ec.lpszClassName = applicationName;

刚开始编译这段代码时,applicationName是一个char*,一切都很好,但现在我需要重新创建项目(顺便说一句,是MSVC++),当我试图编译它时,它需要是一个LPCWSTR。我偶然发现了这一点,我很想知道,为什么它有时接受char,有时不接受!?我的项目设置中是否遗漏了什么?

顺便说一下:同样的事情也会发生在

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
D3DX11CreateShaderResourceViewFromFile(d3ddevice, filename, NULL, NULL, &m_texture, NULL);

filename曾经接受char*,但现在不接受了...

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-31 17:16:40

在项目设置的“配置属性->常规”下,有一个名为“字符集”的选项。将其设置为"Use Unicode Character Set“将导致许多Windows API函数接受wchar_t*而不是char*。如果设置为“使用多字节字符集”,则API函数将使用char*而不是wchar_t*

票数 3
EN

Stack Overflow用户

发布于 2013-05-31 17:17:18

MSVC项目有一个"Unicode“属性,您可以将其打开或关闭。当它被关闭时,所有的Win32函数都使用char作为基本字符类型(因此,希望传递字符串的函数将需要一个` `const char*)。

启用时,使用的字符类型为wchar_t。(所以函数使用const wchar_t*作为字符串参数)。

该接口实际上定义了两个结构:WNDCLASSEXAWNDCLASSEXW。前者使用char,后者使用wchar_t

根据是否启用了Unicode (它定义了_UNICODE预处理器宏),其中一个别名为WNDCLASSEX

因此,当启用Unicode时,WNDCLASSEX实际上表示WNDCLASSEXW

API中处理字符数据的所有其他函数和类型也是如此。它们都有_A_W变体

如果您不希望依赖于项目属性设置,则可以明确说明要使用的变量:

创建一个WNDCLASSEXW (总是使用wchar_t),而不是创建一个WNDCLASSEX (这可以是两个不同的东西)。调用RegisterClassARegisterClassW,而不是调用RegisterClass

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16862484

复制
相关文章
VS2005中关于char[]转换成LPCWSTR的问题
      最近在使用VS2005,有时VC6.0中的工程拿到VC2005下经常会出现问题,比如最令我头痛的问题之一是:
ccf19881030
2019/04/29
1.5K0
SQL函数 CHAR
Char返回与指定的整数代码值对应的字符。因为 IRIS是UNICODE系统,所以可以为任何UNICODE字符指定整数代码,从0到65535。如果code-value是超出允许值范围的整数,则CHAR返回NULL。
用户7741497
2022/03/28
6540
Oracle to_char 函数
认真生活,因为生活只有一次 格式化函数 to_char: 函数 返回 描述 例子 to_char(timestamp, text) text 把 timestamp 转换成 string to_char(timestamp 'now','HH12:MI:SS') to_char(int, text) text 把 int4/int8 转换成 string to_char(125, '999') to_char(float, text) text 把 float4/float8 转换成 string to_
王小明_HIT
2019/08/12
1.8K0
VS2022 C++ const char * 类型的实参与LPCWSTR类型的形参不兼容
const char * 类型的实参与LPCWSTR类型的形参不兼容 VS2022
UzJu@菜菜狗
2023/10/20
6400
VS2022 C++ const char * 类型的实参与LPCWSTR类型的形参不兼容
VS2022 C++ const char * 类型的实参与LPCWSTR类型的形参不兼容
const char * 类型的实参与LPCWSTR类型的形参不兼容 VS2022
UzJu@菜菜狗
2022/09/23
3.8K0
SQL函数 TO_CHAR(二)
可以使用 TO_CHAR 将以下 tochar 表达式时间值转换为格式化的时间字符串:
用户7741497
2022/08/01
2.3K0
C/C++中const char*、char const*、char * const三者的区别
定义一个指向字符常量的指针,这里,ptr是一个指向 char* 类型的常量,所以不能用ptr来修改所指向的内容,换句话说,*ptr的值为const,不能修改。但是ptr的声明并不意味着它指向的值实际上就是一个常量,而只是意味着对ptr而言,这个值是常量。实验如下:ptr指向str,而str不是const,可以直接通过str变量来修改str的值,但是确不能通过ptr指针来修改。
自学气象人
2023/01/12
2.1K0
SQL函数 TO_CHAR(一)
名称 TO_CHAR 和 TOCHAR 是可互换的,并且支持 Oracle 兼容性。
用户7741497
2022/08/01
3.9K0
SQL函数 TO_CHAR(三)
返回具有适当数量的前导空格的指定数字。无符号正数前面总是有一个空白字符。如果指定数字的位数少于格式参数,则提供额外的前导空格。
用户7741497
2022/08/01
3820
oracle中varchar和char的区别_char跟varchar
1.varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节;
全栈程序员站长
2022/11/17
1.1K0
char *转换为string的陷阱:char*中包含较多的'\0'
今天给团队调试一个错误,概率性的加密的数据没法做解密,现象是解密出来的结果和源数据长度不一致,很奇怪的现象,因为加密使用的数据是随机的,所以使得问题出现时表象是概率的问题;
呱牛笔记
2023/05/02
6920
char *转换为string的陷阱:char*中包含较多的'\0'
char 、char[]、char*、 const char*、string(无效的const char *到XXXX的转化)
1、std::string 和QString在网络传输的过程中是不建议配套的,传过去,接到就成乱码了。 我因为这个愚蠢而把我们客户端人员坑惨了。
看、未来
2020/08/26
1.7K0
char 、char[]、char*、 const char*、string(无效的const char *到XXXX的转化)
gis中char是什么字段_gis中字段类型char
I x 向集合中插入一个字符串 x; Q x 询问一个字符串在集合中出现了多少次。 共有 N 个操作,输入的字符串总长度不超过 105,字符串仅包含小写英文字母。
全栈程序员站长
2022/09/22
1.7K0
如何自己实现一个Psexec
Psexec被编写的初衷是为了方便服务器管理员管理大量的机器而开发的,但由于它的便捷,同时也被黑客使用。psexec工具下载地址:https://docs.microsoft.com/en-us/sysinternals/downloads/psexec
红队蓝军
2022/05/17
5630
如何自己实现一个Psexec
深入 char * ,char ** ,char a[ ] ,char *a[] 内核
http://blog.csdn.net/daiyutage/article/details/8604720
bear_fish
2018/09/20
2.9K0
深入 char * ,char ** ,char a[ ] ,char *a[] 内核
char* 和char[]的差别
问题引入: 在实习过程中发现了一个曾经一直默认的错误,相同char *c = “abc”和char c[]=”abc”,前者改变其内
全栈程序员站长
2021/12/06
1.2K0
Jmeter 常用函数(21)- 详解 __char
https://www.cnblogs.com/poloyy/p/13291704.htm
小菠萝测试笔记
2020/07/29
3060
Jmeter 常用函数(21)- 详解 __char
psexec原理分析
参加某行动时通过psexec横向过几台主机,正好之前在网上看到很多大佬分析过这款工具,今天也自己动手重新分析一次
HACK学习
2021/06/24
1.2K0
psexec原理分析
Visual Studio——使用多字节字符集与使用Unicode字符集
VS集成开发环境,字符集选择“使用多字节字符集”和“使用Unicode字符集”的直接区别就是:编译器是否增加了宏定义——UNICODE。当选择“使用Unicode字符集”时,编译器会增加宏定义——UNICODE;而选择“使用多字节字符集”时,编译器则不会增加宏定义——UNICODE。
全栈程序员站长
2022/11/03
4.1K0
char *a 与char a[] 的区别
char *a = “hello” 中的a是指向第一个字符‘h’的一个指针
大黄大黄大黄
2018/09/14
1.4K0
char *a 与char a[] 的区别

相似问题

Qt中的const char* to LPCWSTR

10

如何连接LPCWSTR和char[]?

20

const char [22]‘到'LPCWSTR’

10

将char转换为LPCWSTR

40

LPCWSTR改为char*,反之亦然

314
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文