問題タブ [loadlibrary]

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 に答える
1014 参照

c++ - C++ で実行時に関数を読み込む

次の問題があります:

このメソッドは Windows 2000 では使用できないため、私のプログラムは実行時に関数 (この場合は GetExtendedTcpTable()) をロードするかどうかを決定する必要があります。(Windows 2000のみ起動不可)

ご協力ありがとうございました!

レオン22に挨拶

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

c - C で有効な共有ライブラリを作成する

共有ライブラリの作成方法を学ぶためにいくつかのテストを行っています。Code::Blocks の共有ライブラリのテンプレートはこれです

library.c

コンパイルしようとしましたが、エラーや警告なしでコンパイルされました。しかし、Python 3 で ctyped.cdll.LoadLibrary("library path.dll") (実際には C 関数のように動作するはずです) で使用しようとすると、有効な win32 アプリケーションではないと表示されました。python と code::blocks の両方が 32 ビットです (code:blocks は gcc でコンパイルされ、システムにインストールされているバージョンの mingw を使用しようとしましたが、ライブラリが見つからないというエラーが発生します)。 64ビット

何が問題なのか、または私が何か間違っているのか知っていますか?

EDIT1:私はWindows 7 64ビットを使用しています。コンパイラのスペックファイルには、「スレッドモデル:win32、gccバージョン3.4.5(mingw-vista special r3)」と書かれており、コマンドとして使用されています

Pythonで私が使用した

エラーは

バイナリパッケージからpython3.1とmingwの両方をインストールし、システムでコンパイルしていません

EDIT2:マークの回答を読んだ後。

main.h

main.c

コンパイル オプション

gcc 4.5.2 でも同じエラーが発生します。

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

c++ - LoadLibraryを使用したSTATUS_STACK_BUFFER_OVERRUN

LoadLibraryを使用してiphlpapi.dllをロードすると、スタックバッファがオーバーランします。どうすればこの問題を解決できますか?!

lib関数のロードと実行は正常に機能していますが、ある時点で、プログラムがSTATUS_STACK_BUFFER_OVERRUN例外をスローします。(いくつかのポイント:文字列操作にコメントすると、数行後にエラーが発生します)

LoadLibraryとGetProcAddress(静的バインディング)を使用しない場合->バッファオーバーランはありません!

ありがとう、挨拶、

leon22

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

c# - マネージコードを32ビットにダウングレードせずにマネージ64ビットコードから32ビットDLLをロードする方法はありますか?

「任意のCPU」としてビルドするように設定されたアセンブリUtilsがあり、「任意のCPU」としてもビルドするように設定されたマネージドEXEがあります。exeは私のUtilsアセンブリを使用します。

私のUtilsアセンブリは、管理されていない非com 32ビットDLLをロードし、いくつかの関数を呼び出す必要があります。

毎回「間違った形式のプログラムを読み込もうとしました。」という例外が発生します。

EXEとアセンブリを64ビットモードで実行しながら、32ビットDLLをロードして簡単な関数呼び出しを行う方法はありますか?

EXEを32ビットモードでビルドすると機能することはわかっていますが、Utilsアセンブリは64ビットモードで実行される可能性のあるWCF Webサービスやその他のプログラムで使用され、32ビットdllを呼び出す必要があります。

方法はありますか?64ビットコードから呼び出されたときに0ポインターを返すLoadLibraryと、例外を与えるDllImportを使用してみました。

ご協力ありがとうございました。

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

c++ - GetProcAddressによって返された関数を呼び出す永続的なアクセスエラー

これが私のコードです。それを行うのは簡単なようですが、どういうわけかそれはうまくいきません。関数の最後の呼び出しは常にアクセスエラーで失敗します。

mydll.dllはサードパーティのdllです。ソースコードはありませんが、ヘッダーの関数のプロトタイプは次のとおりです。

mydll.dll自体は、ディレクトリ "C:\ MyDllDir"に格納されている他のいくつかのdllに依存しているため、SetDllDirectoryが呼び出されます。

いくつかの観察:

  • バニラのLoadLibraryを機能させることはできませんでしたがLoadLibraryEx、引数を使用すると機能するように見えGetLastErrorます(その場合は0
  • 返されたdllのアドレスが奇妙に見える(0x43900000
  • によって返される関数のアドレスGetProcAddressも奇数(0x43902b34)ですが、DLL Export ViewerはInit関数にオフセットがあると報告します0x00002b34
  • 返された関数を呼び出すと、常にアクセスエラーがスローされます。_ccdecl関数の__stdcallなどのすべての組み合わせを試しましtypedefたが、常に同じエラーが発生します。私はありとなしで試しましたextern C

その他のデータ:

  • このc++コードは、管理された環境から呼び出されています
  • 私はWindows7、64ビットで実行していますが、管理されていない部分をwin32としてコンパイルしています

私は何が間違っているのですか?どうすればこれをデバッグできますか?依存関係ウォーカーとdllエクスポートビューアを試しましたが、すべて問題ないようです。

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

visual-studio-2008 - mex ファイルからの dll の明示的/暗黙的な読み込み

私の質問はこれの重複の可能性があります: matlab mex files and C++ dll (windows)ですが、正確ではありません。

Matlab の mex ファイル (Visual Studio 2008、Windows 7 64 ビット、Matlab 2010b) から dll を明示的にロードしようとすると、実行時にロードに失敗します (NULL ハンドルを取得します)。mex ファイルで使用されていない場合、同じコードは正常に機能します。

.lib ファイルにリンクして暗黙的にロードしようとするとunresolved external symbol、dll で定義されている関数に関するリンカ エラーが発生します。繰り返しますが、mex ファイルで使用されていない場合、同じコードは正常に機能します。

理由は上記の SO の質問の回答と同じですか、それとも何か不足していますか? 理由が同じである場合、上記の質問で提案されたもの以外に別の解決策はありますか?

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

android - tuxriderandroidアプリケーション用のjnilibの構築

自分で作成するために、drodinのAndroidアプリ「Tuxrider」のソースコードをダウンロードしました。 https://github.com/drodin/TuxRider

アプリケーションでは、「tuxrider」と呼ばれるライブラリの呼び出しがあります

しかし、そのようなライブラリはなく、そこにあるすべてのファイルからライブラリを構築する方法を理解することはできません。

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

c# - .net dll(C#)からの関数メソッドのエクスポートについて

math.dll

そして、私のexeプロジェクトでは、Add()関数を使用したいので、

例1-これは機能しています

例2-これは機能していません

例3-これは機能していません

例(2,3)が機能しないことの間違いはどこにあるのか教えてください。ありがとう。