gpt4 book ai didi

c++ - 如何将 STX/ETX(C0 控制代码)写入 BSTR 缓冲区 IXMLDOMElement*

转载 作者:行者123 更新时间:2023-11-28 08:08:25 25 4
gpt4 key购买 nike

我有一个应用程序将一个 (BSTR* ProfileXml) 作为输出参数传递。所以我在使用 SysAllocString(Profile) 分配配置文件后发送配置文件

WCHAR   Profile[] = 
L"<IhvSecurity xmlns=\"http://www.sampleihv.com/nwifi/profile\">"
L"<IHVSecurityParam2>parameter value</IHVSecurityParam2>"
L"</IhvSecurity>";

几乎所有 ascii 字符的参数值都可以正常工作(不包括 C0 代码,如 STX ascii 代码 2 ETX ascii 代码 3)。一旦我发送 STX 或 ETX 应用程序发送错误并要求有效的 xml 缓冲区,我正在使用 IXMLDOMElement 方法加载配置文件缓冲区修改缓冲区并再次保存缓冲区。我没有提到 Profile 字符串缓冲区中的编码默认是 utf - 8。

所以我在这里做错了什么或者我们不能在 xml 中使用 STX/ETX ??? MSMXL 解析器无法解析它们。或者他们以某种方式/API 将其写入参数缓冲区是节点。

任何帮助将不胜感激

谢谢

最佳答案

你是对的,you can't use control characters in XML 1.0 .请参阅 valid range 的规范. XML 1.1 添加了对这些控制字符的支持,但我认为 MSXML 不支持 XML 1.1。

作为解决方法,您可以实现某种转义方案,然后在另一端对其进行解码。

关于c++ - 如何将 STX/ETX(C0 控制代码)写入 BSTR 缓冲区 IXMLDOMElement*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9709535/

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