问题标签 [widestring]
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.
java - 在 Linux 上将 wstring 转换为 jstring
我在 unix 中将 wstring 转换为 jstring 时遇到问题,因为 linux 上 wchar_t 的大小为 4 个字节(而不是像 windows 那样的 2 个字节,因此我不能使用 wchar_t 到 jchar 的转换)。
任何人都可以帮我吗?
谢谢,礼萨
delphi - 为什么 Delphi DLL 可以使用 WideString 而不使用 ShareMem?
David 对另一个问题的回答显示了一个返回 WideString 的 Delphi DLL 函数。我从没想过不使用ShareMem
.
我的测试DLL:
我的来电程序:
它有效,我不明白如何。我知道的约定是 Windows API 使用的约定,例如 Windows GetClassNameW
:
这意味着调用者提供缓冲区和最大长度。Windows DLL 以长度限制写入该缓冲区。调用者分配和释放内存。
另一种选择是 DLL 例如通过 usingLocalAlloc
分配内存,而调用者通过调用LocalFree
.
内存分配和释放如何与我的 DLL 示例一起使用?是否因为结果是WideString
(BSTR
)而发生“魔术”?为什么不使用如此方便的约定声明 Windows API?(是否有任何已知的使用这种约定的 Win32 API?)
编辑:
我用 C# 测试了 DLL。
调用SomeFunction1
会导致 AV ( Attempted to read or write protected memory
)。
SomeFunction2
工作正常。
这是后续行动。
string - 定义:AnsiString、WideString、String、char[]、char*、BSTR、
这是对这个问题的跟进
AnsiString
也是一堂课吗?和string
?它是一个类?还有一个char[]
?
我们可以说 aWideString
是双字节字符AnsiString
的包装器,是单字节字符的包装器,并且char[]
是单字节字符的数组吗?string
不太确定它是什么...
不确定我在 Code Builder C++ 2007 中可用的不同类型的字符串类型及其可移植性。
delphi - 如何通过索引访问 WideString 的字符?
我有以下无法编译的代码片段:
德尔福5抱怨Incompatible types
。
我尝试将其简化为:
哪个有效,并且:
没有。
我只能假设WideString[index]
不返回 a WideChar
。
我试图强迫事情成为WideChars
:
但这也失败了:
不兼容的类型
脚注
5
: 德尔福 5
string - c#:如何将 c# 字符串转换为 c++ wstring,反之亦然
c#代码-
我想将 s 作为 wstring 发送到 c++ dll。
如何在 c# 中将字符串转换为 wstring?
c - 一旦我在 C++ 中使用宽字符串,程序就会崩溃
(由于我还没有足够的声望来回答我自己的问题,所以我先把它放在这里。我发布它时并没有想清楚。对我来说是凌晨 3 点,我没想到在别处寻找问题。
我正在制作另一个函数来在 lua 中动态添加一个对象,该对象有自己的消息要显示。这就是给我带来问题的那个,所以一旦我静态加载它就可以了。这确实是另一部分代码的问题。)
我在这里遇到了一个很奇怪的问题
我的 C++ 代码使用 lua(没有 boost 库),因此它可以从 lua 检索变量等,并且 lua 可以调用已注册的 C 函数。
现在我有两个版本的函数,一个用于 ANSI,另一个用于 Unicode(中文)。ANSI 版本似乎工作正常,并且不会中断。问题出在 unicode 版本上。
我设法解密了 ANSI 格式的 unicode,所以这一切都很好。现在的问题是它可以正常工作几次,但是当我多次重复相同的 lua 代码时,程序会崩溃。我仍然无法判断这是 lua 堆栈的问题还是只是内存的问题。
这是代码首先给出代码,这就是我将其缩小到的范围
所以经过几个小时的 printf 和测试,我发现 wstring msg = wstring(txt) 是打破它的行。
我通过使用widestringstream解决了这个问题,至少在这里不会崩溃(尽管我仍然必须修复其他函数才能使用widestringstream才能工作,可能)
但是,一旦我添加了类似 wstring msg = buf.str() //buf 作为流的行,就会出现同样的问题。
所以我想知道,发生这种情况的原因可能是什么?当我在 Code::Blocks 中打开调试模式时它工作正常,但显然这不是一个好的解决方案,我在 Windows 中,所以我也不能使用 Valgrind,有什么建议吗?
提前致谢
outputstream - 如何将 int 打印到 std::wcerr?
operator<<
如果我的对象需要打印 astd::wstring
以及 ints 等,我该如何编写输出?
换句话说:int
如果我通过 a ,我如何打印 s 和其他原始数据类型wcerr
?我需要boost::lexical_cast<std::wstring>
或类似的吗?
winapi - C++ Builder XE2:如何将字符串转换为 wchar_t*
我有 SHBrowseForFolder 弹出并工作正常,但我想设置标题。我知道它必须是 wchar_t* 并且当我使用像 (wchar_t*)L"My Title" 这样的 const 时,标题显示正确。
但是如果我尝试使用字符串值,我只会得到第一个字母“M”,就像宽字符串再次转换为新的宽字符串一样,用 nul 填充每个字符。
UnicodeString的所有转换函数的文档c_str()
,t_str()
都w_str()
返回一个wchar_t*
但声明显示WideChar*
。
任何想法如何使此代码与字符串一起工作?
delphi - 如何测试我的 WideReplace 功能?
操作系统:匈牙利语 Windows (Windows 1250)
在 Delphi 6 Prof 下没有WideStringPos, WideStringCopy, WideStringReplace
...
但是在基于 XML 的项目中,我需要使用它们。
因为我试图编写“类似”这些函数。
但我不确定他们是否按照我的意愿工作......
因为 Delphi 将 Wide 转换为 Ansi 并在后台反转,所以我不能确定我的代码是否安全不受这些副作用的影响...... :-)
代码非常原始 - 我需要快速解决方案......
我有两个问题:
您是否看到任何肯定会产生不良结果的代码(默默地将 Wide 转换为 Ansi,并导致字符丢失)?
你知道我可以测试这段代码的一些角色吗?
例如, chr(XXX) 当我的转换器保持宽规则时剩余的内容,但如果我编写错误的代码就会丢失......
感谢您将写的每一个信息...