[英]How can convert this C# code to C++/CLI
如何将此段C#代码转换为C ++ / CLI:
protected string GetMD5HashFromFile(string fileName)
{
FileStream file = new FileStream(fileName, FileMode.Open);
MD5 md5 = new MD5CryptoServiceProvider();
byte[] retVal = md5.ComputeHash(file);
file.Close();
ASCIIEncoding enc = new ASCIIEncoding();
return enc.GetString(retVal);
}
特别是这部分byte[] retVal = md5.ComputeHash(file);
自由使用C ++ / CLI中可用的堆栈语义来自动处理对象。 仿真Holy C ++ RAII模式,即使代码抛出异常,对象也会被处理掉。 可以把它想象成编译器自动生成C# using语句。 看起来像这样:
using namespace System;
using namespace System::IO;
using namespace System::Security::Cryptography;
using namespace System::Text;
ref class Example {
protected:
String^ GetMD5HashFromFile(String^ fileName)
{
FileStream file(fileName, FileMode::Open);
MD5CryptoServiceProvider md5;
array<Byte>^ retVal = md5.ComputeHash(%file);
return Convert::ToBase64String(retVal);
}
};
有一个使用C ++加密服务提供程序在这个问题的最佳答案中生成MD5的示例:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.