問題タブ [pinvoke]

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 投票する
2 に答える
2392 参照

c# - P/Invoke を正しく使用する

C# から外部 dll を呼び出す必要があります。これはヘッダー定義です:

C# で列挙型と呼び出しを追加しました。

これにより、AccessViolationException が生成されます。上記GetHandleを返す呼び出しも追加したため、dllが「機能している」ことはわかっています。パラメータを( )hHandleに変更しようとしましたが、同じエラーが発生します。上記の呼び出しを PInvoke する方法を知っている人はいますか?intref int watchmode

0 投票する
2 に答える
38409 参照

.net - C# で "char *" をマーシャリングする

DLL に次の C 関数があるとします。

この関数を C# に P/Invoke し、char * を適切にマーシャリングするにはどうすればよいでしょうか。.NET は LPCTSTR の実行方法を知っているようですが、この関数を呼び出すときに NotSupportedException を発生させないマーシャリングを理解できない場合。

0 投票する
2 に答える
4244 参照

wpf - WM_NCCALCSIZE を処理するとウィンドウがジャンプするのはなぜですか?

画面の端にスナップする WPF アプリがあります (画面の端から 20 ピクセル以内にいる場合は、ウィンドウの .Top または .Left を設定するだけです) が、最近、WPF SDK チームから提供されたコードを "ウィンドウクロムを混乱させ、うまく機能していますが(スクリーンショット)、「スナップショット」がウィンドウを予期せず移動させています(例:スナップする必要があるときに左にジャンプします)

私はそれをWM_NCCALCSIZEの処理に絞り込みました...彼らは基本的に何もせず、処理すると言って0を返すだけなので、これは本当に奇妙です。

WM_NCCALCSIZE のドキュメントによると、これはウィンドウ全体がクライアントとして扱われる (クライアント以外のエッジがない) だけの結果になるはずですが、どういうわけか、スナップ先のコードがウィンドウを画面の一番下に移動するたびに、 、それも約134ピクセル左に移動します...(他の端に移動すると同様の副作用があります)、マウスを押したままドラッグしている限り、本来あるべき場所から前後にちらつきます。WM_NCCALCSIZE の処理を​​コメントアウトすると、スナップ先が正常に機能します (ただし、フォームが正しく表示されません)。

WM_NCCALCSIZE ハンドラーでできることはすべて試しましたが、左にジャンプするのを止めることはできません...そしてもちろん、WM_NCCALCSIZE はウィンドウ サイズが変更されたときにのみ呼び出されるため、それがどのように発生するのかわかりませんそもそもこれ!

PSコードを実際に見たい場合は、すでにCodePlexにあり、2つのファイルで_HandleNCCalcSizeOnWindowLocationChangedを探します

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

winforms - RichTextBox と下線の色

の下線の色を変更する方法はありますRichTextBoxか? 私はこれを試しましたが、うまくいかないようです。これらの列挙値がどこから来たか知っている人はいますか? それに関するドキュメントはありませんでした。

ありがとう。

0 投票する
2 に答える
2389 参照

c# - ポインターを介して P/Invoke を使用して C# で C++ クラスをインスタンス化する

PE ファイルを生成するために、C# アプリケーションでアンマネージ DLL mscorpe.dll から CreateICeeFileGen() 関数をインポートしています。この関数は、ここで定義された C++ オブジェクトへのポインターを返します。C# を介してこのクラスのフィールドにアクセスする方法はありますか? またはアンマネージ ラッパー DLL を記述する必要がありますか?

私が現在使用しているコードは次のとおりです:-

NB : .net ライブラリで同様のことができることはわかっていますが、目的のためにアンマネージ ライブラリを使用する必要があります。

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

c# - DLLImport Int** - 可能な場合の方法

メソッドのパラメーターの 1 つとして int** を必要とするサード パーティの DLL を使用しようとしています。パラメータは、メモリ割り当てを指すポインタのアドレスとして記述されます。

混乱して申し訳ありません。パラメータは双方向だと思います。DLL は FPGA ボードと対話するためのもので、メソッドはホスト PC と PCI ボード間の DMA 転送をセットアップすることです。

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

.net - dllimport で Ansi または Unicode 文字セットを使用する必要がありますか?

DllImport を使用して関数をインポートする場合、使用する CharSet を指定できます。C#、C++、および Visual Basic では、.Net ランタイムがデフォルトで Unicode ではなく Ansi を使用することに気付きました。したがって、A バージョンと W バージョンを持つシステム コールでは、デフォルトで A バージョンが呼び出されます。.Net は内部で Unicode を使用しており、間違っていなければ新しいバージョンの Windows もすべてを Unicode に変換するため、マーシャリングのオーバーヘッドが大幅に増加します。

私は常にここでユニコードを指定する習慣に陥っていますが、これは正しい方法ですか、それとも問題を引き起こしますか?

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

c# - CPPから不明な数の引数でCPP関数を呼び出すC#

私は次のプロトタイプを持つCPPの関数を持っています:

DLLImport 属性を使用して C# からインポートします。質問は次のとおりです。C# で (DLLImport 属性の下で) プロトタイプを定義するにはどうすればよいですか? この関数に引数を渡すにはどうすればよいですか? ありがとう

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

c# - C#でのポインター計算

ピンボークコードを使用してC関数を呼び出そうとしています。この関数は、バッファーをデータで満たします。

構造は、長さのDWORDとして設定され、その後に文字列が続きます。IntPtrから文字列を抽出するにはどうすればよいですか?

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

.net - .net の CUDA?

PyCUDA などの多くの CUDA 言語バインディングがあることは知っていますが、.Net 用の適切なバインディングはありますか? 私が見たのはこれだけですが、他にもあるなら知りたいです。