问题描述
请告诉我,我想将json写入共享内存。 StrPcopy 如果文本超过 2047 个字符错误“0x004074ba 处的访问冲突:地址条目 0x00381000”。我没有找到有关限制的信息。也许还有另一种写json的方式?
var
SecurityAttr: TSecurityAttributes;
SecurityDescr: TSecurityDescriptor;
begin
InitializeSecurityDescriptor(@SecurityDescr,Security_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(@SecurityDescr,True,nil,False);
SecurityAttr.nLength:=SizeOf(TSecurityAttributes);
SecurityAttr.lpSecurityDescriptor:=@SecurityDescr;
SecurityAttr.bInheritHandle:=True;
SendMMF := CreateFileMapping($FFFFFFFF,@SecurityAttr,PAGE_READWRITE,32,PChar('Global\Test'));
if (SendMMF = 0) then
Exit;
SendData := MapViewOfFile(SendMMF,FILE_MAP_WRITE,0);
if SendData = nil then
Exit;
StrPcopy(SendData,GetJson);
if Assigned(SendData) then
Exit;
if SendMMF.Size > 0 then
Exit;
UnmapViewOfFile(SendData);
SendData := nil;
CloseHandle(SendMMF);
end;
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)