問題タブ [istream]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
image - BYTE* を gdi+ 画像オブジェクトに変換するには?
BYTE* を gdi+ Image オブジェクトに変換したいと考えています。
これどうやってするの?
BYTE* は Dib ポイントのようです。
Image には Image::FromStream() という名前のメソッドがあり、これが役立つ可能性がありますが、BYTE* を IStream オブジェクトに変換する方法についての参照が見つかりません。これどうやってするの?
前もって感謝します!
実際、MS が IStream インターフェイスを提供しているとは信じがたいですが、インターフェイスを実装する c++ MemoryStream クラスは提供していません。
c# - C# で IntPtr を ulong 変数に取得する
IntPtr を IStream.Read に渡す必要があり、IntPtr は ulong 変数を指す必要があります。ulong 変数を指すこの IntPtr を取得するにはどうすればよいですか?
c++ - ファイル名またはディレクトリの入力をユーザーに求める
ユーザーにファイル名の入力を求めています。最初に有効なファイル名を入力すると、機能します。ただし、最初に無効な場合、他のすべてのチェックは失敗します。どうすればこれを修正できますか? また、ディレクトリを指定したとしましょう。すべてのテキスト ファイルの名前とその数を取得するにはどうすればよいでしょうか。
c++ - バイナリデータを保存するためにMySQLC++コネクタを使用するにはどうすればよいですか?
次のように定義されたバイナリデータのブロックがあります。
void *アドレス、size_t binarySize;
MySQLC++コネクタを使用してMySQLデータベースに保存したい。
関数setBlob()はistreamを取ります。
質問:
生のvoid*アドレスsize_tbinarySizeからistreamオブジェクトまたはistringstreamに変換するにはどうすればよいですか?データを「コピー」せずにこれを行うことは可能ですか?つまり、ポインタとサイズをistreamに伝えて、ポインタが指すようにします。
c# - C# から IStorage/IStream を使用して Windows エクスプローラーにドラッグ アンド ドロップする
私はあまりにも長い間、単純な機能のように聞こえるものに取り組んできました。アイデアは、私は TreeView を持つアプリケーションを持っているということです。このツリービューは、Windows エクスプローラーと同様に、ファイルとフォルダーに編成されたデータベースの内容を表します。したがって、ユーザーがこれらのファイル/フォルダーをアプリから Windows エクスプローラーにドラッグできるようにすることは理にかなっています。
IStream
ファイルをドラッグする場合は を使用するかIStorage
、フォルダーをドラッグする場合は を使用することにしました。非常に長い時間をかけて、Win32/COM について知りたいと思っていた以上のことを学んだ後 (そして、ここで非常に親切な人からの助言を受けて)、ついにそれを手に入れた、IStream
またはIStorage
作成しました。
次に、これを Windows エクスプローラーに渡しIStream
たり、オフにしたりするには、 . もちろん、 medium.tymed は、どちらを使用しているかに応じて または になりますが、私が理解しているように、は へのポインターでなければなりません。IStorage
STGMEDIUM
IStream
IStorage
medium.unionmember
IStream/IStorage
私は固定されたキーワードを使用してみました(もちろん、それはblittableではありません)、爆破されたものをバイト配列に変換しようとしましたが、それを実現する方法を思いつくことができませんでした。 GCHandle を使用して固定する (ただし、まだ blittable ではありません)、および機能しなかった他のいくつかのこと。
私の質問は次のとおりです: と が与えられIStorage s
た場合、Windows エクスプローラーが満足してドロップを受け入れるようにするSTGMEDIUM m
にはどうすればよいですか?m.unionmember
c++ - std :: istreamから(演算子>>を使用して)読み取るにはどうすればよいですか?
std::istream
を使用してどのように読み取ることができoperator>>
ますか?
私は次のことを試しました:
しかし、それはエラーを与えます:
c++ - すでにストリームの最後にあるistream_iteratorをインクリメントした結果はどうなりますか?
私は標準を見ましたが、明白な答えは見当たりませんでした。
私がこれをしたとしましょう:
現在is
はストリームの最後にあり、に等しくなりstd::istream_iterator<char>()
ます。もう一度インクリメントするとどうなりますか?それはまだ等しいstd::istream_iterator<char>()
ですか?またはos結果は未定義ですか?
がストリームの最後にある*is
場合、標準はそれが未定義の動作であると明示的に述べています。is
しかし、ストリームの終わりを超えて反復することに関しては何も見ていません...
編集:
私はこのようなことをするいくつかのコードに出くわしたので尋ねます:
c# - C#経由でIStreamをファイルに保存するには?
IStream オブジェクト (System.Runtime.InteropServices.ComTypes.IStream) を返すサードパーティ コンポーネントを使用しています。その IStream のデータを取得してファイルに書き込む必要があります。私はそれを成し遂げることができましたが、コードにはあまり満足していません.
「strm」が私のIStreamであるため、これが私のテストコードです...
少なくとも、上記のように long から int へのキャストは好きではありませんが、上記よりも元のストリームの長さを取得するためのより良い方法はないのでしょうか? 私はC#に少し慣れていないので、ポインタに感謝します。
c++ - istreamgetメソッドの動作
私はistream::getを読みましたが、疑問はまだ残っています。私の区切り文字が実際にはNULLの「\0」文字であるとしましょう。この場合はどうなりますか?私が読んだものから:
If the delimiting character is found, it is not extracted from the input sequence and remains as the next character to be extracted. Use getline if you want this character to be extracted (and discarded). The ending null character that signals the end of a c-string is automatically appended at the end of the content stored in s.
「readline」よりも「get」を好む理由は、文字ストリームを「streambuf」に抽出できるためです。