问题标签 [tchar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3006 浏览

visual-c++ - 将 tchar[] 转换为 LPCWSTR

我正在使用 FindFirstFile 遍历目录以搜索 dll。

当我获取 dll 时,我使用 WIN32_FIND_DATA 结构的 cfilename 来获取该 dll 的名称。

现在,我想将 dll 传递给函数 LoadLibrary() ,该函数期望 dll 的绝对路径。

问题来了:WIN32_FIND_DATA 结构的 cfilename 返回一个 TCHAR[] 数组,它只是 dll 的名称,而不是它的路径。我应该将路径连接到名称以获得绝对路径。

LoadLibrary() 需要一个 LPCWSTR 作为参数。

我需要帮助: (1) 将 WIN32_FIND_DATA 的 cfilename 返回的 TCHAR[] 转换为 LPCWSTR (2) 将上述转换后的 LPCWSTR 与预定义路径 (L"C:\dir\example\") 连接以获得绝对路径。

任何对正确答案的推动都会让我开心:)

问候,安迪

0 投票
2 回答
3577 浏览

visual-c++ - 为什么没有定义 PCTSTR 而定义了 LPCTSTR?

我已被分配更新用 MSVC++ 6 编写的旧代码。我得到了 PCTSTR 的未知定义,但即使我包含了 tchar.h,它也没有定义。根据我以前的经验,我知道有 LPTSTR 但没有 PCTSTR。

我 grep C:\Program Files\Microsoft Visual Studio\VC98\Include\ 文件夹并没有找到 PCTSTR 的定义。但令我惊讶的是,当我搜索 Windows SDK 文件夹 [C:\Program Files\Microsoft SDK] 时,没有 PCTSTR 的定义,但它被用于其中一个示例。[C:\Program Files\Microsoft SDK\Samples\winui\Resource\Iconpro*]。所以我猜这可能只是 16 位 Windows 的 Windows API 的遗物,但我无法从谷歌找到任何东西。

有谁知道 PCTSTR 是干什么用的。我猜是因为这是来自以前有效的旧代码。任何想法如何进行编译?[我把这个改成LPCTSTR并编译好了,我想知道除了改定义名还有其他方法吗]

0 投票
1 回答
905 浏览

c++ - C++ 索引 TCHAR 字符串

我正在对一些旧的 C++ 代码做一些静态分析工作,而我的 C++ 不是最强的。我有这段代码:

静态分析工具在这里抱怨在 1024 处索引logString(传递给函数的参数),而它可能更短(大小不同,我猜 1024 是最大大小)。所以我想我的解决方法是检查logString的大小并使用它,如下所示:

我只是想知道,这行得通吗?任何人都可以看到任何缺陷/问题吗?构建和测试这个项目有点困难,所以在我完成所有这些之前,我基本上只是在寻找一个健全性检查。或者我有更好的方法吗?我可以将 size_t 值传递给 _tcsncpy,因为之前有硬编码的 int 吗?

感谢所有帮助。

0 投票
2 回答
2595 浏览

c++ - 如何从函数中正确输出 TCHAR?

这段代码:

给出错误:

0 投票
1 回答
379 浏览

string - SHGetSpecialFolderPath to a System::String^

我正在尝试将 a 解析SHGetSpecialFolderPath为字符串,System::String^准确地说是 a 。
我现在正在使用这段代码:

我已经尝试过这样的事情,但它也不起作用:

我只想得到System::String^这样的:

0 投票
1 回答
1533 浏览

c++ - 将 TCHAR 数组中的数字存储到 VC++ 中的 INTEGER 变量中。(在 UNICODE 环境中)

我在线程中问了一个与此非常相似的问题: https ://stackoverflow.com/questions/11259474/store-the-numericals-in-char-array-into-an-integer-variable-in-vc

WRT上面的线程,我的问题如下::我在UNICODE环境中工作。所以 TCHAr 可能会被视为 wchar。

我的场景如下:(C++)

TCHAR a[10] 中,数组 a[] 具有元素(数字),例如 '1'、'2'、'3' 等......

说 a[0] = '1'; 一个1 = '2'; a[2] = '3';

现在 a[] 存储 3 个字符“1”、“2”和“3”。我想将其存储为 123(整数 123)的 int。

如何在 C++ 中实现这一点?

提前致谢。

0 投票
1 回答
592 浏览

c - 将 SHGetSpecialFolderPath+SubFolder 与 SHFileOperation 一起使用

我想C:\Users\username\AppData\Roaming\appname在用户卸载应用程序时删除该文件夹appname

首先,我使用以下代码获取路径C:\Users\username\AppData\Roaming

appname 定义为_T("appname")

第一个问题是:How to append "appname" to "dir"?

假设上述完成。然后我需要使用SHFileOperation删除非空文件夹C:\Users\username\AppData\Roaming\appname。所以我需要一个SHFILEOPSTRUCT结构中的双空终止字符串。所以

How to get a double null-terminated string from the result of the first step? Just append _T("\0\0") to it?

更新:我可以TCHAR *dir2 = lstrcat(dir, appname);用来获取路径。但是当我尝试使用时TCHAR *dir3 = lstrcat(dir2, _T("\0\0"));,该文件夹并没有被删除。任何数量\0都行不通。


ps:

如果我直接执行以下操作,我可以让它工作。问题是我希望它独立于用户。

0 投票
2 回答
7380 浏览

c++ - CString 到 TCHAR

很长一段时间后,今天我看到了这种转换:

它编译好。关于这种转换的任何解释?

看起来大部分都可以,因为我不需要GetBuffer稍后使用和释放它,也不需要创建new LPTSTR带有字符串长度的a。

0 投票
1 回答
1187 浏览

winapi - 在 winapi 中使用 _tcstok_s 解析 tchars

使用以下代码,我收到错误“simpleWindow.exe 中 0x59be5d2e (msvcr100d.dll) 处的未处理异常:0xC0000005:访问冲突写入位置 0x00e750f8。”

这只是我正在使用的一个例子,最终我试图从另一个类中提取一个字符串,但我想让解析首先工作。

0 投票
2 回答
1377 浏览

c++ - C++ 程序中的 TCHAR 和未解析的外部符号 (LNK2019) 错误?

我的项目有两个 cpp 文件和一个头文件。一个 cpp 文件包含一个类的实现,它的声明在头文件中。另一个 cpp 文件包含该int main函数。

该类的构造函数之一包括一个参数,它在链接器错误TCHAR中被引用为未解析的函数。LNK2019

我正在使用 Visual Studio 2010,并且我已将Character set项目属性中的选项设置为,Not Set以便我可以在charwchar_t使用宏UNICODE之间进行选择。_UNICODE

目前我已经在我的主 cpp 文件的开头定义了这些,并且头文件包含在这两个之后。但是,如果我在头文件的开头定义这些宏,则项目可以完美编译。

有没有办法解决这个问题?还是我必须对类进行硬编码才能使用charor wchar_t

谢谢。