問題タブ [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 投票する
1 に答える
531 参照

c# - リモートデスクトップで実行されるプログラムのデバッグモードの使用

そのプログラムのみを実行し、リモートマシンへの他のアクセスを許可しないように設定された、リモートデスクトップ接続でのみ使用される短いプログラムがあります。以前は、プログラムを終了して接続を終了させましたが、非常に遅いため、プログラムの実行が終了したときにリモートセッションを終了する次のコードを記述しました。

これは、このプログラムが実稼働環境にあり、特定のRDP接続ファイルを使用してリモート処理しているユーザーが使用する場合に正常に機能します。プログラムの実行後、接続は終了します。ただし、このプログラムをテストおよびデバッグする場合、実行するたびにコンピューターが再起動します。

私はこれらのケースを区別するための良い方法を探しています。プログラムをリモートで実行してリモートで実行する、ある種のデバッグスクリプトを設定する必要がありますか?または、プログラムがデバッグモードで実行されているかどうかをプログラムで検出し、その場合は終了手順を無効にする方法はありますか?

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

c# - 構造体の配列をマーシャリングするためのヘルパー関数(ポインター付き)

これは、C#の相互運用に関する最も一般的な質問のようですが、実用的な解決策を見つけるのは難しいようです。

C#で行列データ構造の配列を割り当ててC DLLに渡し、データをいっぱいにして呼び出し元に返して処理する必要があります。

Web上のさまざまなページに基づいて、データとメモリをC#からC ++に取り込むことができたようですが、そうではないようです...

コードは次のとおりです。

助けてくれてありがとうShyamal


私は次のようなC++構造を持っています

これをC#で宣言します

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

asp.net - Mono 上の DevExpress ASP.Net コンポーネント

私は DevExpress コンポーネントの満足のいくユーザーですが、現在はまだ Linux Web ホストを使用しています。

別のスレッドで、DevExpress の ASP.Net コンポーネントを使用できるように Windows 環境に移行する計画について話しました。しばらくの間、DevExpress の立場は、P/Invoke の多用により、それらのコンポーネントが Mono で動作する可能性が低いというものでした。

ASP.Net コンポーネントの使用経験がないので質問ですが、Mono で ASP.Net コントロールをうまく使用した人はいますか? 私は、WinForms のものよりも mono の下で ASP.Net のものの方がはるかにうまくいったことを示すいくつかの投稿を読みました。

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

c# - System.Runtime.InteropServices.ComTypes.IStream から System.IO.Stream

.NET 3.0 プロジェクトでは、P/Invoke を介して (特に PTConvertPrintTicketToDevMode() などの PrintTicket プロバイダー関数に対して) いくつかの呼び出しを行う必要があります。

フレームワークには、COM IStream インターフェイスのマネージ定義 System.Runtime.InteropServices.ComTypes.IStreamがあります。

これらのインポートされた関数の出力で .NET クラス (XmlDocument など) を簡単に使用できるように、これを System.IO.Stream として必要とします。しかし、一度にバイトのブロック単位でデータを読み書きする以外に、これを前後にSystem.IO.Streamに変換するより苦痛の少ない方法は見当たりません。非常に一般的に見えるタスクには、あまりにも無作法に思えます。

それとも、私はこれを間違った方法で行っていますか?

PTConvertPrintTicketToDevMode () を次のようにインポートしました。

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

.net - 文字列配列を.NETのLPCWSTRに変換して、Win32 API関数に渡すにはどうすればよいですか?

Win32 API関数に渡すために文字列配列をLPCWSTRに変換する必要があるC#コードがあります。マーシャルクラスには、それを簡単にするものは何も見つかりません。誰かがそれを行う方法を知っていますか?

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

c# - P/Invoke および C# のカスタム呼び出し規約

P/Invoke を使用するときに独自の呼び出し規約を指定できるようにする必要があるビジネス ケースがあります。具体的には、非標準の ABI を使用する従来の dll があり、関数ごとに呼び出し規約を指定できるようにする必要があります。

たとえば、この dll の 1 つの関数は、最初の 2 つの引数を EAX と EBX 経由で受け取り、残りはスタック経由で受け取ります。別の関数は、ECX を介して 1 つの引数を受け取り、残りはスタックに置きます。これらの関数は数百ありますが、これらの関数にアクセスするために独自の中間ブリッジ DLL を作成することは避けたいと考えています。

私のもう 1 つのオプションは、独自のカスタム P/Invoke を手動でロールすることですが、これは明らかな理由から望ましくありません。

どんな助けでも大歓迎です、ありがとう、

0 投票する
7 に答える
82623 参照

c# - 管理された方法で.NETで親プロセスを取得する方法

.NET で親プロセスを取得する方法をいろいろ探しましたが、P/Invoke の方法しか見つかりませんでした。

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

c# - C#で「CreateFile」を呼び出す方法は?

ストレージ デバイスからの .MBR の取得に関する多くの情報を取得した後、結論として、P/Invoke を使用して を呼び出しますCreateFile

しかし、これを C# で行うにはどうすればよいでしょうか。図解してください!あなたの助けは大歓迎です!!!

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

timezone - Windows CE .NET 4.2 で、SetTimeZoneInfo がハングするのはなぜですか?

当社の製品には、スケジュールされた間隔でアプリケーションが DLL 内のコードを実行できるようにするタスク マネージャー システムが含まれており、タスクの失敗によって関連するアプリケーションを無効にするかどうかについてのルールを指定できます。主に、データのアップロード、データのダウンロードに使用されます。 、ローカル データベースのメンテナンスなど。使用される機能の 1 つは、NTP を介してデバイスの時刻を同期し、OS のタイムゾーン情報を設定することです。このために、OpenNetCF の DateTimeHelper クラスを使用します。これは、Win32 P/Invokes のラッパーとして機能しているようです。

タスク マネージャーのその他の機能の 1 つは、タスクが割り当てられた時間枠よりも長く実行された場合、タスク マネージャーはそのタスクを Thread.Abort() して、他のタスクを実行できるようにすることです。スタックの最上位の関数が OpenNetCF.WindowsCE.NativeMethods.SetTimeZoneInformation() であるスレッドの異常終了が驚くほど多く見られます。基になる P/Invoke (SetTimeZoneInfo) が長時間ハングするのはなぜですか?

私たちのコードは Windows CE 4.2 で実行され、Windows CE 5.0 でははるかに小さなユーザー ベースで実行されます。ここでのコードは 2 つのバージョン間で同じです。これまでのところ、これが 4.2 デバイスで発生するのを見てきましたが、5.0 では発生しませんでした。また、5.0 のユーザー数が少ない場合でも、そこに存在していれば発生していたと思います。

以下の関数は、問題の原因となった関数です。タイム ゾーンの略語を完全な名前に変換し、その名前を使用して適切なタイム ゾーンを見つけ、デバイスの現在のタイム ゾーンをそのタイム ゾーンに設定しようとします。

いつもお世話になっております。何かご意見は?