問題タブ [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.

0 投票する
3 に答える
993 参照

c# - 毎回 IntPtr (AllocHGlobal) を割り当て/割り当て解除するか、保存する方が良いですか?

FreeHGlobal を呼び出す関数の最後に、頻繁に使用する関数 (おそらく毎秒 30 回) で AllocHGlobal (常に同じサイズ) を使用する状況があります。

AllocHGlobal で割り当てられたメモリの一部を保持し、クラス Dispose のときにそれを解放する方が良いですか、それとも関数を呼び出すたびに割り当て/解放する必要がありますか?

このメモリが C# でどのように動作するかはわかりません。これは私にとって「新しい世界」です。

0 投票する
4 に答える
6083 参照

c# - IntPtr の配列の処理

私は近いと思いますし、解決策はばかげているに違いありません。

次の関数を定義する C++ ネイティブ DLL があります。

基本的に、ファイル パスを指定すると、この関数はバイト配列 (BYTE*) のリストを作成し、データ パラメータを介してポインタのリストを返す必要があります。それぞれが異なるバイト配列を指しています。

C# から IntPtr の配列を渡し、個々の配列を順番にマーシャリングできるようにしたいと考えています。私が使用しているコードは次のとおりです。

問題は私の C++ コードにあります。*(data + i * sizeofarray) = pByte; を割り当てると、ポインターの配列が破損します...何が間違っていますか?

更新: 概念を分離するための新しいソリューションの作成を開始したところ、すでに非常に奇妙なものが見つかりました。見てみましょう:

C# コード

C++ コード

ネイティブ コードへの呼び出しの前に、pList には 10 個の IntPtr.Zero 要素があります。ネイティブ呼び出しから戻った後、1 つしかありません...何か問題があります...また、void** を BYTE** に置き換えた場合にも発生します

0 投票する
1 に答える
608 参照

c# - extern 関数で default(IntPtr) は合法ですか?

私が次の署名を持っているとしましょう:

デフォルトを使用したい:

これは有効ですか?C++ では、ポインタを 0 または null に使用します。C# では、IntPtr が値なのか参照なのかさえ明確ではありません。

関数を手動で呼び出す場合は、 を使用しますExternal(10, IntPtr.Zero);。私の質問は次のとおりだと思います:default(IntPtr)と同じ動作をしIntPtr.Zeroますか?

0 投票する
6 に答える
16768 参照

c++-cli - intptrとは何ですか?

IntPtrとは何かわかりませんでしたが、誰かがこれを説明できますか?ありがとう

0 投票する
1 に答える
3352 参照

c# - C# で IntPtr から byte[] を取得する方法

IntPtrメソッドにaを渡したいのですがbyte[]、C#でパラメーターを取ります。それは可能ですか、可能であればどうすればそれを行うことができますか?

どうも

0 投票する
1 に答える
402 参照

c# - 3D配列へのポインタ

私は3D配列を持っていて、IntPtrそれを指摘したいので、ここで私がしたこと..誰かがそれが正しいかどうか教えてもらえますか...

myvolumeのサイズが200x100x100であることに注意してください

0 投票する
6 に答える
97034 参照

c# - C# IntPtr から Byte[] を取得する方法

デリゲートを持つ .dll (自分のものではない) があります。このデリゲート コールバック関数は次
のとおりです

IntPtr を Byte[] に変換するにはどうすればよいですか? ペイロードは実際には Byte[] だと思います。それがByte[]ではなく、それ以外の場合、データが失われますか?

0 投票する
5 に答える
1603 参照

c# - C# で IntPtr と UIntPtr の演算を実行できないのはなぜですか?

それは単純に見える質問です:

ネイティブ サイズの整数が算術演算に最適であるとすれば、C# (または他の .NET 言語) がネイティブ サイズのIntPtrandを使用した算術演算をサポートしないのはなぜUIntPtrですか?

理想的には、次のようなコードを記述できます。

32 ビットと 64 ビットの両方のプラットフォームで動作するようにします。(現在、 を使用する必要がありますlong。)


編集:

私はこれらをポインターとして使用していません(「ポインター」という言葉は言及されていませんでした)。native intこれらは、MSIL およびintptr_tCの C# の対応物として扱うことができます。これらはポインターではなくstdint.h整数です。

0 投票する
1 に答える
1230 参照

memory - IntPtrがメモリリークを引き起こしていますか?

この関数はループしています。プログラムを実行すると、IntPtr の行でメモリの問題が発生します。delete[] を配置しましたが、それでもメモリの問題は解決しません。誰か助けてください。ありがとう

これは C++\CLI です

0 投票する
0 に答える
456 参照

c# - インスペクターからウィンドウハンドルを取得する

重複の可能性:
ウィンドウのオープンイベントとウィンドウのハンドル

こんにちは皆さん、

IntPtr開いたばかりのOutlookウィンドウからウィンドウハンドル()を取得するにはどうすればよいですか?

私はCシャープに不慣れです。