这似乎是一个noob问题,但我的所有搜索都会返回C++ or C#
的内容,所以我会在这里提问。
我的.c文件目录中有DLL, SDL.dll
。我想导入它使用。
不支持使用,#import
不起作用。
答案 0 :(得分:1)
源中没有指令可以帮助你,你可以
在第一种情况下,您还需要一个与所用DLL的平台和版本相匹配的适当头文件。
如果您使用的函数的原型匹配,则只要插入较新版本的DLL,第二个解决方案就会起作用。
这假设您在Windows下,如果您有* .dll而不是* .so(共享对象)文件,则可能就是这种情况。 (对于Linux系统,您可以包含dlfcn.h
并使用dlopen / dlclose / dlsym而不是LoadLibrary / FreeLibrary / GetProcAddress,语法略有不同,请查看doc)
答案 1 :(得分:0)
这很可能假设您的DLL格式正确(例如与Windows API DLL相同的标准)
你需要声明你的功能 - 可能在头文件中,如下所示:
typedef void(CALLBACK * functionnameptr)(char *,int),
然后使用LoadLibrary加载DLL,并为其提供句柄:
handle = LoadLibrary(“SDL.DLL”);
然后使用GetProcAddress(句柄,“DLL中的实际函数名”) 像这样:
functionnameptr lptrfunction;
lptrfunction = GetProcAddress(句柄,“DLL中的实际函数名称”);
现在您可以使用lptrfunction,就像通常在C
中使用函数一样答案 2 :(得分:0)
假设您使用的是Visual Studio。
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位的Visual Studio中工作
在Linux上如果已经安装了SDL,只需输入“g ++ -02 -o foo foo.cpp -lSDL”