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

时间:2015-04-23 12:01:19

标签: c# delphi .net-assembly

我从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 个答案:

答案 0 :(得分:2)

我说你有两种选择。

  1. 托管CLR,并使用CLR API调用它。
  2. 创建一个.net类库并让它为您完成工作。从Delphi代码中使用.net类库。
  3. 第一个选项真的没什么好玩的。 CLR API功能非常强大,但学习曲线也很陡峭。

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