- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试将加载到Memorystream中的前16个字节读取为TBytes。此ReadBuffer methot引发访问冲突异常。
我想从文件中加载加密的数据。前16个字节是用于创建文件的密码的MD5哈希。因此,加载后我要做的第一件事是检查提供的密码是否与编码的保存密码匹配。为此,我将LoadFromFile方法作为函数重新引入,返回了加载代码。
现在进行测试,我的文件仅包含16个字节的密码。
我检查了是否正确创建了MemoryStream。查看局部变量,我发现确实有16个字节被加载到Stream中。
TEncMemoryStream = class(TMemoryStream)
strict private
PwdMD5: TBytes;
.
.
public
constructor Create;
destructor Destroy;override;
function LoadFromFile(Filename: String;PassWord:String):
TLoadResult;reintroduce;
.
.
function TEncMemoryStream.LoadFromFile(Filename: String;PassWord:String): TLoadResult;
begin
Result := lrLoaded;
try
inherited LoadFromFile(Filename);
ReadBuffer(PwdMD5,16); // <----- here the exception is thrown
except
Result := lrFailed;
end;
if Result = lrLoaded then
if not CheckPassWord(PassWord) then begin
Clear;
Result := lrWrongPwd;
end
end;
最佳答案
默认情况下,PwdMD5为零。 IOW,您需要调用SetLength(PwdMD5,16)以便在读取文件时有一定的空间让字节走。
关于delphi - TMemoryStream.ReadBuffer引发访问冲突异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58100428/
我有一个庞大的程序,我花了 100 多个小时来完成。尽管它在 Ecipse 中运行良好,但当我导出它时它不起作用。我用该代码制作了一个较小的程序来测试它。我已经搜索并更改了我的代码,但当我导出并运行我
所以我一直在我的一个 c++ 项目中使用 rapidjson,并且我已经弄清楚如何使用它来满足我的项目需求。但是在清理我的代码时,我发现我只是为我的缓冲区大小分配了一个随机数。 char readBu
根据OpenGL documentation我应该能够将像素读取源设置为任何 GL_COLOR_ATTACHMENTi。但是,当我尝试这样做时,glGetError 给我一个 GL_INVALID_E
我有这样的记录 TEmf_SrectchDIBits = packed record rEMF_STRETCHDI_BITS: TEMRStretchDIBits; rBitmap
本文整理了Java中org.apache.tuscany.sca.common.xml.XMLDocumentHelper.readBuffer()方法的一些代码示例,展示了XMLDocumentHe
我是一名优秀的程序员,十分优秀!