gpt4 book ai didi

c++ - 将数组写入 IStream

转载 作者:行者123 更新时间:2023-11-28 00:57:31 33 4
gpt4 key购买 nike

我收到一些数据作为一个字符数组。我想将此数据传递给接收流 (IUnknown *pInput) 的方法。

我尝试调试这段代码(使用 Visual C++):


#include "xmllite.h"
#include <atlbase.h>

CHAR acTemp [100] = {0};
CComPtr<IStream> pDataStream;
HRESULT hr;

hr = IStream_Write (pDataStream, acTemp, sizeof (acTemp));

我得到错误:

SSL.exe 中 0x75e49875 处的未处理异常:0xC0000005:访问冲突读取位置 0x00000000。

我知道以下从文件创建 strem 的代码可以工作,但我不想创建文件只是因为我无法从原始数组转换。

CComPtr<IStream> pFileStream;
LPCSTR szFileName = "FileName";
HRESULT hr;

hr = SHCreateStreamOnFile(szFileName, STGM_READ, &pFileStream);

最佳答案

你可以做

CComPtr<IStream> stream;
COM_VERIFY(::CreateStreamOnHGlobal(0, TRUE, &stream));

也可以使用 GlobalAlloc 指定要使用的“自己的”内存。 (如果您的德语很好 - 请参阅 http://msdn.microsoft.com/de-de/magazine/cc163436.aspx#S5)。

关于c++ - 将数组写入 IStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10286750/

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