将参数从c+中的DLL传递给函数+; 我已经设法在C++中从DLL调用函数,但是我想把一个参数传递给它。< /P>
我当前正在使用SDL,我想将SDL事件“event”传递给源代码中的函数。示例如下:将参数从c+中的DLL传递给函数+; 我已经设法在C++中从DLL调用函数,但是我想把一个参数传递给它。< /P>,c++,opengl,dll,sdl,C++,Opengl,Dll,Sdl,我当前正在使用SDL,我想将SDL事件“event”传递给源代码中的函数。示例如下: // DLL typedef void (*Events)(SDL_Event *event); static __declspec(dllexport) void HandleEvents(Events events) { events(&d2Main::event); } // Application int main() { d2Main::HandleEvents(&H
// DLL
typedef void (*Events)(SDL_Event *event);
static __declspec(dllexport) void HandleEvents(Events events)
{
events(&d2Main::event);
}
// Application
int main()
{
d2Main::HandleEvents(&HandleEvents);
}
void HandleEvents(SDL_Event *events)
{
if(events.type == SDL_QUIT)
// Do stuff
}
d2Main是一个类。
这可能吗?使用nm实用程序(GNU二进制实用程序)查看dll文件中的符号表,然后以调用常规函数的相同方式调用它,方法是使用extern“C”{your function}声明包装要调用的函数。您的函数应该由链接器链接,因此您还应该添加-L./-ldllfile作为g++或gcc的开关。我假设d2Main::event是静态SDL\u事件对象。是的,这是可能的。只要应用程序和DLL看到的结构SDL_事件的定义是相同的(包括结构内部元素之间的填充和打包-出于成员对齐的原因) 跨模块工作时需要记住的一些事情是