我有一个具有附加功能的 C# 应用程序。实现特定接口的插件/插件可以在运行时链接/加载到主 C# 应用程序。
现在我的问题是:如何开发实现 C# 接口并将运行时加载到 C# 应用程序的非托管 cpp dll?
谢谢, 出租车司机
您可以使用 p/inkove 实现接口,例如:
public interface IDirectory
{
bool IsDirectoryEmplty(string path);
}
public class Directory : IDirectory
{
[DllImport("Shlwapi.dll", EntryPoint = "PathIsDirectoryEmpty")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool IsDirectoryEmplty([MarshalAs(UnmanagedType.LPStr)]string directory);
bool IInterface.IsDirectoryEmplty(string path)
{
return IsDirectoryEmplty(path);
}
}
common language support
启用后,您可以编写包含完整本机 c++ 功能的托管 dll 。
您可以通过.Net 中的 PInvoke 加载非托管 dll,但我不推荐这种方式。