C# 动态P/调用DLL

C# 动态P/调用DLL,c#,dynamic,pinvoke,C#,Dynamic,Pinvoke,从.NET动态p/调用非托管代码的最佳方法是什么 例如,我有许多非托管DLL,它们之间有常见的C样式导出。我希望获取DLL的路径,然后根据导出的名称P/Invoke函数。直到运行时我才知道DLL名称 基本上,什么是.NET的LoadLibrary和GetProcAddress的等价物?(我有使用这些函数来实现相同目标的现有代码,完全在非托管代码中)。您可以选择创建一个本机函数,该函数负责将适当的DLL和函数加载到内存中,然后根据您的路径将该函数返回托管代码。通过这种方式,您可以自然地使用GetP

从.NET动态p/调用非托管代码的最佳方法是什么

例如,我有许多非托管DLL,它们之间有常见的C样式导出。我希望获取DLL的路径,然后根据导出的名称P/Invoke函数。直到运行时我才知道DLL名称


基本上,什么是.NET的
LoadLibrary
GetProcAddress
的等价物?(我有使用这些函数来实现相同目标的现有代码,完全在非托管代码中)。

您可以选择创建一个本机函数,该函数负责将适当的DLL和函数加载到内存中,然后根据您的路径将该函数返回托管代码。通过这种方式,您可以自然地使用GetProcAddress技巧并返回函数点。然后,您可以PInvoke进入该函数并获取一个委托,该委托随后将调用到适当的DLL中。

您可以通过p/调用LoadLibrary和GetProcAddress,然后使用


有关详细信息,请参阅。

本文介绍了GetProcAddress的类型安全托管包装器,它应该可以帮助您解决问题

另请参阅Jonathan Swift的博客文章,标题是从.net动态调用非托管dll