从动态库调用函数
当我们在编译时不知道函数的名称时,如果可能的话,加载动态库并调用其函数之一的最佳方法是什么?
例如,有没有一种方法可以让程序从文件中读取字符串,然后加载DLL并搜索并调用名称为从文件中读取的字符串的函数?
非常感谢您的帮助。
What would be the best way to, if possible, load a dynamic library and call one of it's functions, when we don't know the name of the function during compile-time?
For example, is there a way to make a program that reads a string from a file and then loads a DLL and searches for and calls a function with its name being the string read from the file?
Help would be very much appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
维基百科上有一个 示例,其中展示了如何使用 <运行时的 href="http://msdn.microsoft.com/en-us/library/ms684175%28v=vs.85%29.aspx" rel="noreferrer">LoadLibrary() 函数。您将看到函数名称被指定为字符串。您需要编写代码来搜索函数名称并将其传递给类似的代码。
在 Linux 上,您可以使用 dlopen() 和 dlsym()< /a> 函数。
There is an example on Wikipedia of all places showing how to use the LoadLibrary() function at runtime. You will see that the function name is specified as a string. You would need to write the code to search for the function name and pass it to similar code.
On Linux you can do this with dlopen() and dlsym() functions.