怎样给PChar类型的Buffer动态分配空间? 从你的代码看分配空间是对的,而是你读取的问题。改成:iBytesRead := FileRead(iFileHandle, Buffer^, iFileLength); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 读取没问题,Buffer本来就是一个指针,而FileRead要的参数也是一个指针。估计是FileSeek的问题,FileSeek你要检查返回值的,如果返回值为-1,表示执行失败,这时候你用 Buffer := PChar(AllocMem(iFileLength + 1)); 如果FileSeek失败,则iFileLength 为-1,当然你的Buffer只能得到0空间。检查文件是否存在 Buffer := AllocMem(iFileLength + 1);或者GetMem(Buffer,iFileLength + 1); 来晚了kmzym() 是对的而且下面这句不用PChar转换也可以Buffer := PChar(AllocMem(iFileLength + 1)); 我测试过,kmzym()是对的,下面这句也必须要Buffer := PChar(AllocMem(iFileLength + 1)); delphi中指向结构体的指针 大家推荐个好用点的编译器啊, PChar转String 怎么获得一个数字对应的一个时间 请教 dbgrideh 网格问题 (先送上100分!) 考考你们 我有一文件的全路径filename,怎样实现文件移动 打印窗口的莫名其妙的问题! 有谁教我DBComboBox1邦数据库的数据??? 寻求GIS软件,同仁朋友们请推荐一把 问一声:各位在和别人合作开发时最后怎么组合起来的? 关于图形的问题!
Buffer := PChar(AllocMem(iFileLength + 1)); 如果FileSeek失败,则iFileLength 为-1,当然你的Buffer只能得到0空间。
检查文件是否存在
GetMem(Buffer,iFileLength + 1);
kmzym() 是对的而且下面这句不用PChar转换也可以
Buffer := PChar(AllocMem(iFileLength + 1));
下面这句也必须要
Buffer := PChar(AllocMem(iFileLength + 1));