私は文字配列としていくつかのデータを受け取ります。このデータをストリーム(IUnknown * pInput)を受け取るメソッドに渡したいと思います。 SSLで0x75e49875で配列をIStreamに書き込む
未処理の例外:私はエラーを取得する
#include "xmllite.h"
#include <atlbase.h>
:
は、私は、コードのこの部分(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を使用してください。 –