これは初心者の質問のように思えますが、私の検索はすべてに関するものを返すC++ or C#
ので、ここで質問します。
DLL, SDL.dll
.cファイルのあるディレクトリに、があります。インポートして使用したい。使用はサポートされておらず、#import
機能しません。
ソースのディレクティブは役に立ちません。どちらでもかまいません。
最初のケースでは、使用するDLLのプラットフォームとバージョンに一致する適切なヘッダーファイルも必要です。
2番目の解決策は、使用する関数のプロトタイプが一致する限り、新しいバージョンのDLLをドロップインする場合に機能します。
これは、Windowsを使用していることを前提としています。これは、*。so(共有オブジェクト)ファイルではなく*.dllがある場合に当てはまります。(Linuxシステムの場合、dlfcn.h
構文が少し異なるLoadLibrary / FreeLibrary/GetProcAddressの代わりにdlopen/dlclose / dlsymを含めて使用できます。ドキュメントを確認してください)
これは、DLLが正しい形式(たとえば、Windows API DLLと同じ標準)であると仮定すると、かなり可能です。
関数を宣言する必要があります-おそらく次のようなヘッダーファイルで:
typedef void(CALLBACK * functionnameptr)(char *、int)、
次に、LoadLibraryを使用してDLLをロードし、それにハンドルを指定します。
handle = LoadLibrary( "SDL.DLL");
次に、GetProcAddress(handle、 "DLLの実際の関数名")を次のように使用します。
functionnameptr lptrfunction;
lptrfunction = GetProcAddress(handle、 "DLLの実際の関数名");
これで、通常Cで関数を使用するのと同じようにlptr関数を使用できます。
VisualStudioを使用していると仮定します。
1.) Download http://www.libsdl.org/release/SDL-1.2.15.zip
2.) unzip and install to for example C:\SDL-1.2.15
3.) In Visual Studio open the properties of the project goto C++ general and add C:\SDL-1.2.15\include to "Additional include directories".
4.) Goto the "Linker" tab and add C:\SDL-1.2.15\lib\x86 to "Additional library directories".
5.) Now go to "Input" under the Linker tab and add SDL.lib; SDLmain.lib to "Additional dependencies"
6.) Go to the "Build Events" tab and "Post build event" and add copy /y C:\SDL-1.2.15\lib\x86\SDL.dll "$(OutDir)
これで、SDLが32ビットのVisualStudioで機能するようになります。
Linuxでは、SDLがすでにインストールされている場合は、「g ++ -02 -ofoofoo.cpp-lSDL」と入力するだけです。