我接收一些数据作为char数组。我想将这些数据传递给接收流的方法(IUnknown * pInput)。将数组写入IStream
我试图调试这段代码(使用Visual C++):
#include "xmllite.h"
#include <atlbase.h>
我得到错误:
未处理的异常在0x75e49875在SSL。 exe:0xC0000005:访问冲突读取位置0x00000000。
我知道下面的代码从一个文件创建一个strem将工作,但我不想创建一个文件,因为我不能从原始数组转换。
CComPtr<IStream> pFileStream;
LPCSTR szFileName = "FileName";
HRESULT hr;
hr = SHCreateStreamOnFile(szFileName, STGM_READ, &pFileStream);
您也可以先创建流,然后使用它的写入方法来填充数据,这是更直接的。 – 2012-04-26 06:35:49
@SamuelZhang,你会怎么做?我有一些麻烦,我试过这个: '的IStream * pInput;'' CHAR caStream [] = “asdkhgkjfhgdhg”;'' pInput->写(caStream,的sizeof(caStream),NULL);' 而在得到了错误未处理的异常在0x002b1be2 SSL.exe:0xC0000005:访问冲突读取位置0x00000000。 – kdmin 2012-04-26 14:37:54
首先,您需要创建IStream的一个实例,例如具有NULL处理程序的CreateStreamOnHGlobal。接下来,sizeof只返回字符指针的大小。请改用ARRAYSIZE。 – 2012-05-03 02:35:48