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

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

.net - .Net / WNetAddConnection2W (エラー 67 - ネットワーク名が見つかりません) を使用してネットワーク ドライブをマップできませんか?

こんにちは、

以下のコードを使用して、ネットワーク ドライブを .net アプリケーションにマップしています。より正確には、実行してみてください。WNetAddConnection2W を呼び出すたびに、エラー コード 67 で win32exception が発生します...これは基本的に「ネットワーク名が見つかりません」に変換されます..しかし、私は本当に理由を知っています...このエラーのアイデア由来かも?

NetworkMapper クラスは次のとおりです。

基本的に私がしていることは次のとおりです。

そして、private void mapDrive(string username, string password)メソッドは、エラー コード67でWin32Exceptionをスローします...

mpr.dll / WNetAddConnection2W エントリポイントを使用している人はいますか? または、このエラーを回避/修正する方法を知っていますか?

乾杯と感謝、-Jörg

更新: 私はもともとエラー 1204 (「指定されたネットワーク プロバイダー名は無効です」) を持っていました..しかし、これまでの 2 つの回答は少し役に立ちましたが、ネットワーク ドライブを適切にマップできないという問題全体を解決することはできませんでした。 ..

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

c# - C++ から C# に構造体を返すことができません

ネイティブ C++ dll を呼び出す C# プログラムがあります。

C# には次の構造体があります。

C++ プログラムには、次の構造体定義があります。

C# プログラムは Phenomenom オブジェクトをインスタンス化し、C++ メソッドへの次の呼び出しを行います。

C++ は単純に構造体を更新して戻ります。C++ 関数は次のとおりです。

C++ 関数の呼び出し後に構造体の値を出力すると、C# プログラムから、構造体が更新されていません (つまり、C++ 関数が呼び出される前と同じです)。C++ プログラムは値を確認して更新できるようですが、戻り時に C# が構造体の値の更新を確認することはありません。値と参照の問題だと思って、構造体ではなく、C# プログラムのクラスでこれを実行しようとさえしました。まだ運がありません。

質問: 呼び出された C++ 関数が、渡された実際の構造体を更新できるようにするには、どのようなマーシャリングが必要ですか?

ありがとうございました。-グレッグ・エドワーズ・トータル・イマージョン・ソフトウェア

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

c++ - __declspec(dllimport/dllexport) と継承

次のクラスを持つ DLL があるとします。

「DLLAPI」キーワードがクラス定義に適用されていない場合でも (少なくとも、直接ではなく)、私の「派生」クラスは dll の外部に表示されますか?

「D()」関数は可視ですか?

ありがとう

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

c# - Vista DLLImport 問題 C#

[DllImport("DoSomething.dll", EntryPoint = "something_dump", SetLastError = true)] private static extern void something_dump(IntPtr ダンパー);

XP マシンでこの DLLImport を実行すると正常に動作しますが、Vista では例外が発生します。

DLL 'DoSomething.dll' を読み込めません: 指定されたモジュールが見つかりませんでした。(HRESULT からの例外: 0x8007007E)

両方のマシンで Windows/System32 ディレクトリにありますが、何らかの理由で Vista がロードしません。

そして、Vista マシンのパスを完全に修飾すると ...DllImport("C:\WINDOWS\system32\DoSomething.dll"... 動作します!

実際に、Vista マシンの DLLImport 関数に system32 ディレクトリを参照するように指示する必要がありますか?

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

c# - フォーカスを失ったときにタスクバーを点滅させる方法

私は以下のこのコードに出くわし、多くのユーザーが技術に精通していないため、WinForm アプリに実装しようとしました。

残念ながら、それは何もしません。エラーなどは発生しません。フラッシュにはなりません。

誰でも洞察を提供できますか?Win 7(x64) と Win XP (x86) で試しましたが、どちらも同じ結果でした。

私はそう呼んでいます->TaskbarFlasher.FlashWindow(this);メインフォームから。

0 投票する
9 に答える
15543 参照

c# - C#でプログラムによってdllimportを設定する

私はDllImport自分のソリューションで使用しています。
私の問題は、同じDLLの2つのバージョンがあり、1つは32ビット用に、もう1つは64ビット用にビルドされていることです。

これらは両方とも、同じ名前と同じ署名を持つ同じ関数を公開します。私の問題は、これらを公開する2つの静的メソッドを使用し、実行時にIntPtrサイズを使用して、呼び出す正しいメソッドを決定する必要があることです。

これを行う必要があるのは、一定myDllName32myDllName64なければならず、実行時に設定する方法が見つからないためです。

IntPtrコードの重複と定数サイズのチェックを取り除くことができるように、誰かがこれに対するエレガントなソリューションを持っていますか?

ファイル名を設定できれば、一度チェックするだけで、大量の繰り返しコードを取り除くことができます。

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

c# - .NET コードが dllimport を介してアンマネージ dll の関数を呼び出した後に何が起こっているかをデバッグする方法はありますか?

.NET コードが dllimport を介してアンマネージ dll の関数を呼び出した後に何が起こっているかをデバッグする方法はありますか?

dllimport を介してアンマネージド内の dll 関数を公開します。コードをステップ実行する際に関数を呼び出すと、何かが発生し、戻りません。

おそらくデバッグビューや情報を取得するために何かできることはありますか? それとも私はSOLですか?

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

c# - コールバックで MiniDumpWriteDump を呼び出す

MiniDumpWriteDump 関数を使用していくつかのカスタム ダンプ ファイルを作成したい (主に、スレッド コールスタックの最小限の情報を含むダンプ ファイルをエクスポートしたい) が、渡す必要がある構造を定義するのが難しいコールバック関数へのパラメーター

呼び出しは次のようになります。

だから私の質問はMINIDUMP_CALLBACK_INPUTを定義する方法です:

問題を引き起こす C の構造体の定義は次のとおりです。

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

asp.net - ASP.NETDLLのインポートの問題

使用するDLLをインポートするのに多くの問題があります。コードビハインドや仮想ディレクトリのないaspxページがあります。

DLLについて私が知っているのは、ファイル名「GenerateExcel.dll」と名前空間「Xander.Utilities」だけです。これらのいずれかを使用してインポートするにはどうすればよいですか

動いていない。SOの他のスレッドを読みましたが、まだ問題があります。

代替テキストhttp://img406.imageshack.us/img406/8021/62535719.gif

編集:私はそれをこのように使用します:

0 投票する
12 に答える
17942 参照

c# - .NETがOpenSSL.NETdllを見つけられないのはなぜですか?

編集(質問全体、それはあまりにも不明確でした)

OpenSSL.NETを使いたい

OpenSSL.NETのインストール手順ページ:インストール

アプリケーションの現在の作業ディレクトリまたはPATHにlibeay32.dllとssleay32.dllがあることを確認してください。完了
.NETプロジェクトで、ManagedOpenSsl.dllアセンブリへの参照を追加します。終わり

私は自分とディレクトリの両方にlibeay32.dllとを入れました。私もそれらを入れました。ssleay32.dllbin/Debugbin/Releasesystem32

これが私の完全なコードです:

次のエラーが発生します: DLL'libeay32' をロードできませんhttp://localhostr.com/files/a719c5/Error.gif(DLL'libeay32'をロードできません)

プロセスモニターのログは次のとおりです(リクエストに応じて): alt text http://localhostr.com/files/726a46/ProcMon.gif

私は何が間違っているのですか?DLLが見つからないのはなぜですか?