在动态加载的dll中找不到入口点

时间:2014-05-14 07:15:52

标签: c# .net dll pinvoke dllimport

在我的Windows应用程序中,我必须动态加载一个DLL。我通过DllImport属性实现了这一点。但是当我在DLL上的Developer Command Prompt for Visual Studio dumpbin / exports 中执行命令时,只列出了5个函数。我无法看到我所需的功能。但我可以在静态链接时使用该方法。有没有办法动态访问所需的功能。

1 个答案:

答案 0 :(得分:0)

您只能调用导出的DLL中的函数。如果这是你的DLL,那么你需要重新编译它以导出你需要调用的函数。如果它不是你的DLL,并且该函数没有导出,那么你运气不好。

您在注释中声明,当您静态链接到DLL时,可以调用该函数。这意味着该函数已导出。它的名字很可能被破坏或装饰,所以你不认识它。一旦你可以计算出受损或装饰名称的内容,你就可以通过运行时链接链接到该函数。

另一种可能性是该函数从不同的DLL导出,或者甚至可能在静态库中定义。没有更多的细节,我们不能给你任何比这更明确的东西。