我接收一些數據作爲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