問題タブ [intptr]
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.
c# - プリンターの DEVMODE を変更できない
DEVMODE
標準およびデバイス固有の設定を渡すために、現在の印刷タスクのプリンターを変更する必要があります。私は次のことを行います:
意味のあるエラー情報なしで実行しようとPrinterSettings.SetHdevmode
すると失敗します。null でない場合、メソッド内で例外がスローされます。
だから私の質問は:何が間違っているのですか?キャストするのは間違っていますか?たぶん、配列以外のものを期待していますか?NullReferenceException
d.PrinterSettings
PrinterSettings.SetHdevmode
byte[]
IntPtr
SetHdevmode
byte[]
byte[] devmode_data
レジストリから配列を取得します。これは有効な値であり、現在のプリンター設定で使用されている値と同じです。
c# - フォローアップ: WPF でウィンドウを最前面に持ってくる
現在のプロジェクトにボタンを追加しようとしています。このボタンを押すと、ウィンドウが x 秒間背面に移動し、ユーザーが他のウィンドウで作業できるようになり、自動的に前面に戻ります。組み合わせて WPF ウィンドウを背面に送信する方法は? WPF でウィンドウを前面に移動し、BackgroundWorker とともに、この 99% を完了することができました。ボタンが押されると、ウィンドウは背面に移動し、指定された秒数後に戻ります。問題は、別のウィンドウ (Opera、Word など) に移動すると、後ろから戻らないことです。フラグで遊んでみましたが、うまくいかないようです。これは可能ですか?もしそうなら、どのように?
ありがとう!
c - エラー: 不明な型名 'intptr_t'
MinGW で C プログラムをコンパイルしているときに、このエラーが表示されます。私の知る限り、'intptr_t' は C99 標準の型だと思っていました。ファイルを含めていませんか?
c# - P/呼び出します。C#からマーシャリングしてアンマネージメソッドを呼び出す方法は?
P/Invoke に問題があります。C# コードから .dll (C++ で実装) を呼び出しています。次のメソッドを含むクラスがあります。
AudioFileList
クラスは次のようになります。
問題は、メソッドを呼び出して、C# コードからCreateAudioFileList
結果を渡す方法です。DisposeAudioFileList
ありがとう!
com - IntPtr と COM の As Any
C# と VBScript で動作する COM オブジェクトを開発しています。また、32 ビットと 64 ビットをサポートする必要があります。
私が抱えている問題は、ポインターにあります。私の .IDL の一部を参照してください
PTRTYPE を void* として宣言すると、c# はそれらを IntPtr と見なし、VB6/VBScript はそれらを "As Any" と見なします。
このアプローチの問題は、「Any」型パラメーターを使用した単純なポインター計算を実行できないことです。
PTRTYPE を long (および 64 ビットで「ハイパー」) として宣言すると、ポインター演算を実行できるようになりますが、C# では、32/64 ビット プラットフォームに応じて、同じメソッドに対して 2 つの異なる定義があります。
VARIANT を PTRTYPE 型として使用することは避けたいと思います。
C# と VBScript の両方と互換性を持たせる方法はありますか?
前もってありがとう、マウロ。
wpf - FilterMessageを停止してさらに先に進むにはどうすればよいですか?
メッセージを停止してさらに先に進む方法、つまりメッセージを処理する方法を見つけることを楽しみにしています。
たとえば、カーソルの位置はテキストボックスにあり、バーコード「#Save#」をスキャンしています。WindowProcを使用して、これがバーコードテキストであることを認識し、(フォームを保存して)テキストの保存を処理しましたが、このテキスト( "#Save#")をテキストボックスに書き込みたくありません。
したがって、短い文で、このテキスト(入力)が処理されるウィンドウを言うためのプロパティまたはメソッドを探しています。それ以上のアクションは実行しないでください。
c - void* の代わりに intptr_t を使用していますか?
intptr_t
の代わりに汎用ストレージ (ポインターと整数値を保持するため) として使用することをお勧めしますvoid*
か? (ここで見られるように: http://www.crystalspace3d.org/docs/online/manual/Api1_005f0-64_002dBit-Portability-Changes.html )
私がすでに読んだことについて:
int
->void*
->int
ラウンドトリップは元の値を保持するとは限りません。私は推測するint
->intptr_t
->int
するだろう- 両方のポインター演算
void*
とintptr_t
キャストが必要なため、ここでは利点がありません void*
ポインタを格納するときの明示的なキャストが少ないことをintptr_t
意味し、整数値を格納するときのキャストが少ないことを意味しますintptr_t
C99が必要
他に何を考慮する必要がありますか?
c# - byte[] 配列を IntPtr に変換するには?
重複の可能性:
C# で byte[] から IntPtr を取得する方法
私はメモリから文字列を読んでいます
そして、この配列を文字列に変換しています。
プログラムのメモリ内のアドレス 003A53D4 の下に、文字列を指すポインターがあるため、問題が発生しました。文字列のアドレスを取得するにはどうすればよいですか? ありがとう :)
それは私が試したことです:
それは言います(約4行目):
値を null にすることはできません。パラメータ名: 宛先
new IntPtr() を new IntPtr(1)に変更 すると、
保護されたメモリを読み書きしようとしました。これは多くの場合、他のメモリが破損していることを示しています。
c# - IntPtrが指すメモリのコンテンツをC#のMemoryStream変数に送信します
このlanguajeは初めてです。
質問は非常に明確だと思います。dll関数を呼び出した後にintptrを受信し、それが指すバッファーをMemoryStream変数に保存する必要があります。どうすればいいのですか ?
c# - ウィンドウの位置を取得するには?
プロセスのウィンドウ位置を取得する方法を知りたいです。私はインターネットでそれを探していましたが、結果はありませんでした。ありがとう :)