问题标签 [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 投票
2 回答
5285 浏览

c++ - tstring typedef 的问题

我在尝试为自己键入一个方便的 tstring 时遇到问题(见下文)

尝试编译时出现编译器错误。“ERROR here (1)”处的错误是:

错误 3 错误 C2871:“std”:具有此名称的命名空间不存在 \nisampleclient\nisampleclientdefs.h 16

如果我删除using namespace std;声明并将 ERROR HERE (2) 更改为说,typedef std::basic_string<TCHAR> tstring;那么我会收到一个错误:

错误 3 错误 C2653: 'std' : 不是类或命名空间名称 \nisampleclient\nisampleclientdefs.h 23

那时相反。

提前致谢。:)

0 投票
2 回答
6034 浏览

c++ - 如何使用 _TCHAR* 作为文件名打开文件?c/c++

我的主要有以下签名:

我想执行以下操作:

但是存在类型不匹配。我该怎么做?我应该使用:

谢谢!

0 投票
3 回答
5653 浏览

visual-studio-2010 - 如何将“System::String ^”转换为“TCHAR”?

我在这里问了一个涉及 C++ 和 C# 通信的问题。问题解决了,但又引出了一个新问题。

这将返回一个字符串(C#)

这需要一个 TCHAR* (C++)

我已经用谷歌搜索了如何解决这个问题,但我不确定为什么字符串上有一个胡萝卜(^)。最好将返回从 String 更改为 C++ 可以接受的其他内容吗?还是我需要在分配值之前进行转换?

0 投票
4 回答
8383 浏览

windows - 是否有一个格式说明符总是表示带有 _tprintf 的 char 字符串?

TCHAR当您使用支持在 Windows 上构建应用程序时, %sin_tprintf()表示char *Ansi 构建和wchar_t *Unicode 构建的字符串,而%S反之亦然。

char *但是,无论是 Ansi 还是 Unicode 版本,是否有任何格式说明符始终表示字符串?由于即使在 Windows 上 UTF-16 也没有真正用于文件或网络,所以无论您将应用程序编译为何种本机字符类型,您仍然经常需要处理基于字节的字符串。

0 投票
5 回答
20393 浏览

visual-studio-2010 - 为什么我会在 c++/CLI 中得到未处理的异常访问冲突?

我一直在努力编写一个从 c++ win32console 和 c++ dll 中提取的解决方案。我终于设法让他们在没有链接器错误的情况下交谈(所以我假设两者都是完全托管的 c++/CLI 项目)但是当我运行控制台时,我得到以下错误。

Company.Pins.Bank.Win32Console.exe 中 0x03f71849 处的未处理异常:0xC0000005:访问冲突写入位置 0x00000001。

控制台还显示以下内容

未处理的异常:System.NullReferenceException:对象引用未设置为对象的实例。在 c:...\win32console.cpp 中的 wmain: _wmainCRTStartup() 处的第 20 行

但我假设这是因为未处理的异常。

跟踪此错误以及在下面的代码块中执行返回时会发生错误。(返回链接的方法似乎可以通过,只是返回时似乎变坏了。)以防万一您没有注意到,我自己没有编写以下代码,它是由Visual Studio生成的。

编辑:win32console.cpp 代码如下。

0 投票
5 回答
88523 浏览

c++ - 在 C++ 中将 TCHAR 转换为字符串

我正在尝试将 TCHAR 转换为字符串,如下所示:

我需要设置mypathpath. 我做了一个简单的循环并连接path[index]mypath并且这有效,但我不喜欢这种方式。

我是 C++ 的新手,但已经做了很多 C#。我见过GetModuleFileName传递“char”的例子,但它不喜欢它。它需要TCHARor LPWSTR

0 投票
6 回答
74700 浏览

c++ - 如何将 TCHAR 数组转换为 std::string?

如何将TCHAR数组转换为std::string(而不是std::basic_string)?

0 投票
5 回答
2860 浏览

c - 我应该从 Windows 代码中消除 TCHAR 吗?

我正在修改一些非常古老(10 年)的 C 代码。该代码在 Unix/Mac 上使用 GCC 编译,并在 Windows 上使用 MinGW 进行交叉编译。目前有 TCHAR 字符串贯穿始终。我想摆脱 TCHAR 并改用 C++ 字符串。是否仍然需要使用 Windows 范围的功能,或者我现在可以使用 Unicode 和 UTF-8 做所有事情吗?

0 投票
4 回答
2807 浏览

c++ - 将堆栈字符串与堆字符串连接会产生奇怪的结果

我相信以下有一个合理的解释,但我仍然有点困惑。

问题在于创建 a _TCHAR[CONSTANT]、 a _TCHAR*、连接它们并返回结果的函数。

whatTheHeck()由于某种原因,对from的调用_tmain()返回乱码。

相反,当使用堆时,事情会按预期工作。

为什么有区别?

是因为_tcscat()连接内存地址而不是它们的内容并返回清除堆栈吗?

0 投票
3 回答
1754 浏览

c++ - 为什么我的 Win32 API 调用需要“A”后缀,我应该纠正它吗?

要从我需要的 Win shell 执行命令

现在我正在完成 Forgers Win32 教程,我正在寻找防止在屏幕上打印垃圾所必需的 A 后缀。我知道这与我的操作系统默认的字符格式有关。如果我可以“规范化”我的操作系统,这可能是最好的解决方案,因为RegisterClassExA无论我在第二个示例中使用了多少 *A 函数,我都会从 NULL 中恢复(在下面复制了我添加的 *A 后缀的 lllotottttssss)

我重新访问了上面的代码,使其像 Forgers(删除 *A's)并改用L""字符串初始化器,但现在我得到一个错误分配const char g_szClassName[] = L"myWindowClass";

错误 C2053:“g_szClassName”:宽字符串不匹配

替换charwchar生成编译器错误消息,指示wchar不是可识别的类型。

_编辑_

我认为L""字符串说明符是首选解决方案,也是我想要追求的解决方案,抱歉,如果我的问题似乎绕圈子,我愿意接受建议。

刚刚将该代码更新为我现在使用的代码,并删除了我无法访问的内容。

_编辑_

错误代码是87,无效参数,所以我猜分配wchar_t参数( wc.lpszClassName = g_szClassName;)毕竟是不正确的......:@(

_编辑_

猜错了?!const LPCTSTR g_szClassName = L"myWindowClass";没有修复(或破坏)一件事。