一段Delphi代码,老是报异常,何解?

xtmzl 2009-06-25 03:42:52
procedure TForm1.Button2Click(Sender: TObject);
var
vector: Pointer;
fileStream: TMemoryStream;
size : Integer;
begin
fileStream.LoadFromFile('C:\1.pse');
size := fileStream.size;

CipherManager1.CipherClass := TCipherClass(TCipher_3TDES );

if not CipherManager1.CipherClass.SelfTest then
MessageBox(Handle, 'Self Test failed', 'Cipher Self Test', mb_Ok);

vector := Pchar('00000000000000000000000000000000000000000000000000000000');
CipherManager1.InitKey( 'KKKKKKKKKKKKKKKKKKKKKKKKKK',vector );

CipherManager1.DecodeBuffer(fileStream.memory^, fileStream.memory^, size ); //此句报非法内存访问


end;

end.
...全文
40 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
kevinsem 2009-07-03
  • 打赏
  • 举报
回复
还没这么强,学习!
xiaowei_001 2009-06-30
  • 打赏
  • 举报
回复
类未实例化
chinamis2008 2009-06-28
  • 打赏
  • 举报
回复
路过的,学习了!
jiangfx2001 2009-06-28
  • 打赏
  • 举报
回复
问题解决了,赶紧结贴吧!呵呵~
yct0605 2009-06-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xtmzl 的回复:]
问题解决了。是流没有create的原因。多谢各位。
不知有人用过Delphi encryption cipher这个控件没?
[/Quote]
没有创建就使用当然不对了,这个控件没有使用过,可以去盒子里面搜搜看。
xtmzl 2009-06-26
  • 打赏
  • 举报
回复
问题解决了。是流没有create的原因。多谢各位。
不知有人用过Delphi encryption cipher这个控件没?
zhoujingxian 2009-06-25
  • 打赏
  • 举报
回复
fileStream: TMemoryStream;
size : Integer;
begin
fileStream.LoadFromFile('C:\1.pse');


fileStream还没有创建实例怎么能直接加载文件啊

呵呵,我不写DELPHI,用JAVA的,路过看看的
亮剑_ 2009-06-25
  • 打赏
  • 举报
回复
1、可能就是没有创建的原因
2、CipherManager1.DecodeBuffer方法的前两个参数传入同样内容?
Jack_Yin 2009-06-25
  • 打赏
  • 举报
回复
学习了
接分 ^_^
bdmh 2009-06-25
  • 打赏
  • 举报
回复
DecodeBuffer需要什么类型参数

另外fileStream没有创建实例,直接使用也是不对的
火龙岛主 2009-06-25
  • 打赏
  • 举报
回复
没创建,就使用了,所以报告异常!
procedure TForm1.Button2Click(Sender: TObject);
var
vector: Pointer;
fileStream: TMemoryStream;
size : Integer;
begin
fileStream = TMemoryStream.create;
try
fileStream.LoadFromFile('C:\1.pse');
size := fileStream.size;

CipherManager1.CipherClass := TCipherClass(TCipher_3TDES );

if not CipherManager1.CipherClass.SelfTest then
MessageBox(Handle, 'Self Test failed', 'Cipher Self Test', mb_Ok);

vector := Pchar('00000000000000000000000000000000000000000000000000000000');
CipherManager1.InitKey( 'KKKKKKKKKKKKKKKKKKKKKKKKKK',vector );

CipherManager1.DecodeBuffer(fileStream.memory^, fileStream.memory^, size ); //此句报非法内存访问
finally
filestream.free;
end;


end;

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧