gpt4 book ai didi

c++ - Windows C++ : LPCTSTR vs const TCHAR

转载 作者:可可西里 更新时间:2023-11-01 09:46:43 26 4
gpt4 key购买 nike

在我的应用程序中,我在代码顶部附近声明了一个字符串变量,用于定义我在调用 RegisterClassEx、CreateWindowEx 等时使用的窗口类的名称。现在,我知道 LPCTSTR 是一个 typedef并最终会跟随到一个 TCHAR(好吧,一个 CHAR 或 WCHAR,取决于是否定义了 UNICODE),但我想知道使用这个是否会更好:

static LPCTSTR szWindowClass = TEXT("MyApp");

或者这个:

static const TCHAR szWindowClass[] = TEXT("MyApp");

我个人更喜欢使用来自 JavaScript、PHP、C# 背景的 LPCTSTR,我从未真正考虑过将字符串声明为字符数组。

但是实际上使用其中一种比使用另一种有任何优势吗,或者它实际上什至不会对我选择哪一种产生影响?

先谢谢您的回答。

最佳答案

这两个声明并不相同。第一个创建一个指针,第二个创建一个 TCHAR 数组。区别可能并不明显,因为如果您尝试使用数组,它会分解成一个指针,但是如果您尝试将它们放入一个结构中,您会立即注意到它。

LPCTSTR 的等效声明是:

static const TCHAR * szWindowClass = TEXT("MyApp");

LPCTSTR 中的“L”代表“Long”,自 16 位 Windows 编程以来就不再相关,可以忽略。

关于c++ - Windows C++ : LPCTSTR vs const TCHAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2991406/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com