unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
EditWrite: TEdit;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation
var
FileName :String;
FileHandle : THandle;
FileMapHandle : THandle;
FileSize : Integer;
FileData : PChar;
{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
// 1 打开内存文件
if FileOpen(FileName,FmOpenReadWrite) = Invalid_Handle_Value then
FileHandle := FileCreate(FileName); if FileHandle = Invalid_Handle_Value then
Raise Exception.Create('创建文件错误'); FileSize := GetFileSize(FileHandle,nil);
// 2 创建文件 内存映射对象 并得到句柄
FileMapHandle := CreateFileMapping(FileHandle,nil,Page_ReadWrite,0,FileSize,nil);
// 3
CloseHandle(FileHandle);
// 4 建立文件视图映射
FileData := MapViewOfFile(FileMapHandle,File_Map_Write,0,0,FileSize);
//5
CloseHandle(FileMapHandle);
//6 写内存文件文件));//把内容写入共享内存
//错误就发生在这里 为什么啊
StrCopy(FileData,PChar(EditWrite.Text
end;procedure TForm1.FormCreate(Sender: TObject);
begin
FileName :='D:\aniu';
end;procedure TForm1.Button3Click(Sender: TObject);
begin
// 7
UnMapViewOfFile(FileData);
end;end.多谢大虾指点了 ^_^
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
EditWrite: TEdit;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation
var
FileName :String;
FileHandle : THandle;
FileMapHandle : THandle;
FileSize : Integer;
FileData : PChar;
{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
// 1 打开内存文件
if FileOpen(FileName,FmOpenReadWrite) = Invalid_Handle_Value then
FileHandle := FileCreate(FileName); if FileHandle = Invalid_Handle_Value then
Raise Exception.Create('创建文件错误'); FileSize := GetFileSize(FileHandle,nil);
// 2 创建文件 内存映射对象 并得到句柄
FileMapHandle := CreateFileMapping(FileHandle,nil,Page_ReadWrite,0,FileSize,nil);
// 3
CloseHandle(FileHandle);
// 4 建立文件视图映射
FileData := MapViewOfFile(FileMapHandle,File_Map_Write,0,0,FileSize);
//5
CloseHandle(FileMapHandle);
//6 写内存文件文件));//把内容写入共享内存
//错误就发生在这里 为什么啊
StrCopy(FileData,PChar(EditWrite.Text
end;procedure TForm1.FormCreate(Sender: TObject);
begin
FileName :='D:\aniu';
end;procedure TForm1.Button3Click(Sender: TObject);
begin
// 7
UnMapViewOfFile(FileData);
end;end.多谢大虾指点了 ^_^
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货