4

CでDLLをロードしてその関数を使用することは可能ですか?

私はCを初めて使用し、インターネットでこれについていくつかの優れた参考文献を検索しようとしています。しかし、私は何も見つけることができません。

どんな助けでもいただければ幸いです!

Windows 7、64ビットのCode::BlocksでGNUGCCを使用しています。

4

3 に答える 3

8

HMODULE hModule = LoadLibrary(<dll file name>)続いGetProcAddress(hModule, <function name>)て、WinAPIを使用してこのジョブを実行します。

例はここにあります。

于 2012-10-23T16:08:13.160 に答える
1

機能を調べてみるべきだと思いますLoadLibrary

http://msdn.microsoft.com/en-us/library/ms684175.aspx

指定されたモジュールを呼び出し元プロセスのアドレス空間にロードします。指定されたモジュールにより、他のモジュールがロードされる可能性があります。

于 2012-10-23T16:10:34.090 に答える
-2

MinGWを使用してDLLを構築する場合、次の手順を実行します。

まず、関数をエクスポート用にマークする必要があります。これにより、DLLの呼び出し元が関数を使用できるようになります。これを行うには、次のように変更します(たとえば)

__declspec( dllexport ) int add2(int num){
   return num + 2;
}

次に、関数がfuncs.cというファイルにあると仮定して、次のようにコンパイルできます。

gcc -shared -o mylib.dll funcs.c -sharedフラグは、gccにDLLを作成するように指示します。

DLLの構築に必要なすべてのフラグなどを自動化する無料のIDEについては、MinGWで非常にうまく機能する優れたCode::Blocksをご覧ください。

また、MinGWWikiのVisualBasicで使用するMinGWDLLの作成の記事も参照してください。

于 2012-10-23T16:17:28.610 に答える