問題タブ [dllimport]
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# - 複雑な(?)ピンボーク状況-関数のオーバーロードを回避する
概要:
C#から呼び出さなければならないC関数がたくさんあります。私の現在の実用的なソリューションは関数のオーバーロードに基づいており、より洗練されたソリューションがあるかどうか疑問に思っています。
Cのもの:
ヘッダーファイルのどこか
関数の例
Cでは、関数は次のように使用する必要があります。
C#のもの:
現在、C#で次のことを行っています。
その後:
質問
私はC#の初心者なので、これが最善の方法かどうか疑問に思いました。特に、関数のオーバーロードを回避する方法があるかどうかを知りたいです。
c# - IntPtr パラメータを float 値で「埋める」方法は?
C# .NET で C ライブラリを使用するために dllImport を使用しています。このライブラリのメソッドの 1 つは、データ型 void* をパラメーターとして使用します。void* に一致するデータ型 IntPtr を C# で使用できることがわかりました。
この IntPtr パラメータの値を設定する方法がわかりません。実際、このパラメーターに float 値を入れたいと思っています。どうすればいいですか?
ご意見ありがとうございます。シモーネ
windows - 挿入された DLL を Windows でアクティブ化する
現在、SetWindowsHookEx を使用して DLL を別のプロセスに挿入していますが、すぐには読み込まれません。ウィンドウを手動でクリックすると、ウィンドウが読み込まれることに気付きました。アクティベーションが開始されるまで、何らかのメッセージが表示されるのを待っているのではないでしょうか? 私は現在それをアクティブにしています
しかし、これはハックのようで、常に機能するとは限りません (つまり、otherAppHwnd がタスクバーに最小化されます。
どんなポインタでも素晴らしいでしょう!
編集:CBTフックです
add-in - C#: Excel 2007 アドイン、Windows のアクティブ化および非アクティブ化イベントをフックする方法
Excel 2007 アドインを作成しています。VS2008 と .net 3.5、C# を使用。
Microsoft.Office.Interop.Excel.Application の WindowActivate および WindowDeActivate イベントをキャッチしました。
WindowActivate と Deactivate は、2 つの Excel Windows を切り替えたときにのみトリガーされることを知って驚きました。メモ帳に切り替えると、非アクティブ化がトリガーされると予想されますが、発生しません。Excelウィンドウに切り替えると、メモ帳から同じように、アクティブ化がトリガーされると予想されますが、発生しません。ウィンドウがMDI子ウィンドウであることを示す動作のようです。
今私がしたいのは、ExcelのメインウィンドウのHWndを取得し、dllimport機能を使用してウィンドウのアクティブ化と非アクティブ化をフックすることです。
誰でもこれについて私に案内できますか。
よろしく
c# - 構造体にポインタを含むC#からDelphi DLLを呼び出すと機能しない
私はこのように定義されたデルファイDLLを持っています
私はこのようにC#に変換しました:
呼び出しは次のようになります。
チャネルを開くように求めており、それを conn に書き込みます。false を返します。だから通り抜けられない。conn オブジェクトは null を返します。サーバーが私の呼び出しを受信していることはわかっています。
間違った型を持つ struct C# と関係があると思います。私は管理されていないものにはかなり慣れていないので、誰かが助けてくれるなら。
dllしかありません。ありがとう
c# - アセンブリのディレクトリをスキャンしてロードする方法は?
プロジェクトでまだ参照されていないアセンブリのディレクトリをスキャンし、IMyInterface を実装するクラスのすべてのインスタンスをロードしたいと思います。
ここでAssembly.LoadFileメソッドが役立つことはわかっていますが、読み込んでいるアセンブリが既に静的に参照されているかどうかを判断するにはどうすればよいですか? アセンブリを 2 回ロードしたくありません。
c# - C ++はC#で作成されたDLLをどのようにインポートできますか?
私はC#で作成されたDLLを持っていますが、このDLLにはCreatorのようないくつかのクラスが含まれています。
このDLLをロードし、C++アンマネージでCreatorクラスを使用する必要があります。
そのインスタンスを作成する方法はありますか、それとも公開されている関数だけをロードする必要がありますか?
私はこのようなものが必要です:
p>これは可能ですか?
c# - C Dll インポート C#
ref 呼び出しを介して参照でき、変更できないメモリ内の場所に構造体を書き込むにはどうすればよいですか。
dll と通信するためのポインターが必要で、値が変更されているため、ref を渡してきました。ref を渡さないと、「保護されたメモリの読み取りまたは書き込みを試みました」というエラーがスローされます。
考え?
c# - 追加の依存関係 / DLL / ライブラリ
私は OpenCV ライブラリに取り組んでいます。このライブラリは C++ で書かれており、単純な win32 アプリケーションを作成しました。私はいくつかの簡単な機能を実装しています。この機能には追加のライブラリが必要であり、追加のライブラリ ファイルを指定するために、[プロジェクト] -> [プロパティ] -> [構成プロパティ] -> [リンカー] -> [入力] -> [追加の依存関係] を使用しています。
上記のプロジェクトの DLL を使用するアプリケーションを C# で作成したいと思います。[DllImport] メソッドを使用してこの DLL を使用しています。Visual Studio の外でアプリケーションを実行すると、インポートしている Dll に対して "DllNotFoundException" が表示されます。ビルド フォルダーとコード フォルダーの両方に dll ファイルを配置しました。
この問題が発生している理由を誰かに教えてもらえますか? 依存/追加ライブラリの問題はありますか?
ライブラリを追加する方法を教えてください。これらの追加の DLL もビルド フォルダーに配置しましたが、それでもエラーが発生します。
依存関係を追加せずに別の単純なdllを試しましたが、エラーは発生しませんでした。依存ライブラリの問題があるようです。問題の解決方法を教えてください