일부 데이터를 문자 배열로 수신합니다. 이 데이터를 스트림 (IUnknown * pInput)을받는 메소드에 전달하려고합니다. SSL에 0x75e49875에서배열을 IStream에 쓰기
처리되지 않은 예외 : 나는 오류가
#include "xmllite.h"
#include <atlbase.h>
CHAR acTemp [100] = {0};
CComPtr<IStream> pDataStream;
HRESULT hr;
hr = IStream_Write (pDataStream, acTemp, sizeof (acTemp));
:
나는이 코드 조각 (Visual C++를 사용)를 디버깅하기 위해 노력했다. exe : 0xC0000005 : 0x00000000 위치를 읽는 액세스 위반.파일에서 strem을 만드는 다음 코드는 작동하지만 파일을 만들지 않으려는 이유는 원래 배열에서 변환 할 수 없기 때문입니다.
CComPtr<IStream> pFileStream;
LPCSTR szFileName = "FileName";
HRESULT hr;
hr = SHCreateStreamOnFile(szFileName, STGM_READ, &pFileStream);
또한 스트림을 먼저 생성 한 다음 write 메서드를 사용하여 데이터를 채우는 것이 더 쉽습니다. –
@SamuelZhang, 어떻게 처리하겠습니까? 몇 가지 문제가 있습니다. 시도했습니다 : '있는 IStream * pInput;' 'CHAR caStream [] = "asdkhgkjfhgdhg ';' 'pInput-> 쓰기 (caStream,는 sizeof (caStream), NULL) ' 및 예약 0x002b1be2에서 에러 처리되지 않은 예외를 가지고 SSL.exe : 0xC0000005 : 0x00000000 위치를 읽는 액세스 위반. – kdmin
먼저, IStream 인스턴스, 예 : NULL 처리기를 사용하여 CreateStreamOnHGlobal. 다음으로, sizeof는 char 포인터의 크기를 반환한다. 대신 ARRAYSIZE를 사용하십시오. –