【发布时间】:2019-09-21 12:20:32
【问题描述】:
我使用以下内容在 2 个可执行文件之间共享一个短字符串:
Type
PInstanceInfo = ^TInstanceInfo;
TInstanceInfo = packed record
MainAppHandle: THandle;
SessionPath: String[255];
end;
Var MappingHandle: THandle;
InstanceInfo: PInstanceInfo;
MappingHandle := CreateFileMapping(INVALID_HANDLE_VALUE,
nil,
PAGE_READWRITE,
0,
SizeOf(TInstanceInfo),
PChar('MyApp'));
InstanceInfo := MapViewOfFile(MappingHandle, FILE_MAP_ALL_ACCESS, 0, 0, SizeOf(TInstanceInfo));
InstanceInfo^.MainAppHandle := Application.Handle;
我使用 SessionPath 来存储文件的路径。当两个应用程序都是 x86 或 x64 时,这工作正常,但是当 App1 是 32 位并且 App2 是 64 位时,App2 在我读取它时缺少字符串的前 4 个字符。在这种情况下,ShortString 结构有什么不同?
【问题讨论】:
标签: delphi