Delphi C#提取嵌入式资源的等效代码

Delphi equivalent code of C# extraction of Embedded Resource

我从 Youtube 中找到了这段代码,它展示了如何提取嵌入式资源,我的修改将从另一个应用程序中提取。

private static void Extract(string FileName, string nameSpace, string outDirectory, string internalFilePath, string resourceName)
    {
        Assembly assembly = Assembly.LoadFile(FileName);
        string ManifestString = nameSpace + '.' + (internalFilePath == "" ? "" : internalFilePath + ".") + resourceName;
        using (Stream s = assembly.GetManifestResourceStream(ManifestString))
            using (BinaryReader r = new BinaryReader(s))
                using (FileStream fs = new FileStream(outDirectory + "\" + resourceName, FileMode.OpenOrCreate))
                    using (BinaryWriter w = new BinaryWriter(fs))
                        w.Write(r.ReadBytes((int)s.Length));
    }

我们有任何 Delphi 等效代码吗?

我会说你有两个选择。

  1. 承载 CLR,并使用 CLR API 调用它。
  2. 创建一个 .net class 库并让它为您完成工作。从您的 Delphi 代码中使用 .net class 库。

第一个选项真的一点都不好玩。 CLR API 非常强大,但学习曲线也很陡峭。

第二个选项非常简单。使用 C# 并通过 COM 或 UnmanagedExports 导出功能。这将允许您使用问题中的代码。或者使用混合模型 C++/CLI class 库并公开公开功能的 classic 非托管 DLL 导出。这将需要您将问题中的代码转换为 C++。