トップ「Pinvoke」の質問

P / Invokeは、マネージコードからネイティブコードライブラリを呼び出すためにMicrosoftによって作成された共通言語インフラストラクチャ(CLI)の実装仕様です。

プラットフォームが同じでも「間違った形式のプログラムを読み込もうとしました」

64ビットシステムで32ビットのアンマネージDLLから関数を呼び出しています。 私が得るものは:BadImageFormatException:不正な形式のプログラムを読み込もうとしました。 (HRESULTからの例外:0x8007000B)最初は、プロジェクトをAny CPUプラットフォームに設定していたので、両方をx86に変更しましたが、このエラーは引き続き発生します。 これが私が知っている唯一の修正です。DLLは、他のプログラム(ソースがない)で使用できるため、破損したりすることはありません。 依存関係が見つからなかったのではないかと思いましたが、確認したところ、すべてそこにあります。 さらに、その場合はDllNotFoundExceptionをスローしませんか?他に何ができますか? また、「代わりに64ビットのアンマネージ […] 続きを読む…

.net 64-bit pinvoke 32-bit badimageformatexception

DLLをロードできません(モジュールが見つかりませんでしたHRESULT:0x8007007E)

.NET4.0アプリケーションで使用する必要のあるアンマネージC ++ APIコードを含むdllライブラリがあります。 しかし、dllをロードしようとすると、エラーが発生します。DLL'MyOwn.dll 'を読み込めません:指定されたモジュールが見つかりませんでした。 (HRESULTからの例外:0x8007007 […] 続きを読む…

c# c++ dll pinvoke

WPFでウィンドウを前面に移動します

WPFアプリケーションをデスクトップの前面に表示するにはどうすればよいですか? これまで私が試した:SwitchToThisWindow(new WindowInteropHelper(Application.Current.MainWindow).Handle, true); SetWindowPos( […] 続きを読む…

c# .net wpf winapi pinvoke

c#コードのc ++ dllで定義されたクラスを使用する

私はc ++で書かれたdllを持っています、私は私のc#コードでこのdllを使用する必要があります。 検索したところ、P / Invokeを使用すると必要な関数にアクセスできることがわかりましたが、これらの関数はクラス内で定義されており、非静的プライベートメンバー変数を使用しています。 したがって、関数を適切に使用するには、このクラスのインスタンスを作成できる必要があります。 インスタンスを作成できるように、このクラスにアクセスするにはどうすればよいですか? 私はこれを行う方法を見つけることができませんでした。私はc ++ dllが私のコードではないことに注意する必要があると思います。

c# c++ dll pinvoke

C#からC ++ / CLIを呼び出すにはどうすればよいですか?

プログラムの算術計算を担当するC ++で実装されたクラスと、WPFを使用するインターフェイスがあります。 入力をC#で処理しますが、C ++クラスをどのように使用できますか?マネージC ++ラッパークラスを作成してそれと対話することについていくつかのコメントを見ましたが、どこから始めればよいのかわかりません。 また、他のすべてのコードと一緒にコンパイルする方法もわかりません。 これに関するチュートリアルを実際に見つけることができず、GoogleがマネージC ++で表示するものは実際には役に立たないようです。私を助けるためにそこに何かありますか? これは私には不合理に思えません。編集m3rLinEzソリューションを試しましたが、BadImageFormatExceptionが発生します。これは、 […] 続きを読む…

c# c++ c++-cli pinvoke managed-c++

259文字より長い名前のファイルを処理するにはどうすればよいですか?

私は、いくつかのディレクトリ内のすべてのファイルをウォークスルーし、それらのファイルに対していくつかのアクションを実行するアプリケーションに取り組んでいます。 特に、ファイルサイズとこのファイルが変更された日付を取得する必要があります。一部のファイルのフルネーム(ディレクトリ+ファイル名)が長すぎるため、 MAX_PATH (260文字)に制限されている.NET Framework FileInfo使用できませんでした。 多くのWebソースは、名前が長すぎるファイルにアクセスするために、P / Invokeを介してネイティブのWin32関数を使用することを推奨しています。現在、Win32関数でもまったく同じ問題が発生しているようです。 たとえば、 […] 続きを読む…

c# windows file-io interop pinvoke

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

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

c# process pinvoke parent managed

WPFのサイズ変更可能なウィンドウから最小化と最大化を削除するにはどうすればよいですか?

WPFには、サイズ変更を許可するウィンドウを設定する機能はありませんが、最大化または最小化ボタンはありません。 このようなウィンドウを作成して、サイズ変更可能なダイアログボックスを作成できるようにしたいと思います。解決策がpinvokeを使用することを意味することは承知していますが、何をどのように呼び出すかはわかりません。 pinvoke.netを検索しても、必要なものとして飛び出したものは見つかりませんでした。主に、WindowsフォームがCanMinimize CanMaximizeプロパティと誰かが私にこれを行う方法を教えたり、コード(C#を推奨)を提供したりできますか?

wpf user-interface resize pinvoke

フォーカスを別のアプリケーションに切り替える正しい方法(.NET内)

これは私がこれまでに持っているものです: Dim bProcess = Process.GetProcessesByName("By").FirstOrDefault If bProcess IsNot Nothing […] 続きを読む…

.net process pinvoke

プログラムでデバイスを有効/無効にするWin32API関数

別のマウスデバイスが検出されるたびにデバイス(ラップトップのタッチパッド)を無効にし、マウスが検出されない場合はタッチパッドを再度有効にする小さなC#アプリを作成しています。 デバイスマネージャでタッチパッドを無効にすることさえできません(デフォルトのマウスクラスドライバで実行されています)。私はデバイスドライバーの開発に取り掛かっているので、IOCTLを受け入れて、デバイススタックへのマウスイベントメッセージの受け渡しを有効または無効にし、生のPDOを介してユーザーモードからメッセージを取得する小さなフィルタードライバーを作成できると思いました。 しかし、私はその質問をしました、そして誰かが私がSetupDi ..関数を介してました。 この生のPDO通信方法は使用するPITAであるため、これは本当に良いことです。私は以前にSetupDiGetClassDevsを使用したことがありますが、その数は非常に多いので、Win32 APIのこの部分の経験が豊富な人は、マウスデバイスまたはそのインターフェイスを停止/無効にするために何を呼び出す必要があるか、またはあるかどうかをすばやく教えてもらえますか?これを行うフレームワークの暗い隅のどこかにあるもの(おそらくWMIで?)。更新(2009年9月24日)フィルタードライバーを使用してこれを行う方法を理解し、元の質問にどのように行ったかを投稿しました。 […] 続きを読む…

c# .net windows winapi pinvoke