请教linuxping屏幕取词的exe中出现的问题 ( 积分: 10 )

  • 主题发起人 主题发起人 江上游者
  • 开始时间 开始时间

江上游者

Unregistered / Unconfirmed
GUEST, unregistred user!
在exe 文件中
const
StrProcNames : array[fTextOutA..fDrawTextW+1] of String =
('来自TextOutA',
'来自TextOutW',
'来自ExtTextOutA',
'来自ExtTextOutW',
'来自DrawTextA',
'来自DrawTextW',
'来自菜单');
***fTextOutA..fDrawTextW没有声明或者定义

procedure TForm1.FormCreate(Sender: TObject);
begin
SetForegroundWindow(self.Handle);{实现隐浮窗口}
hMapObj := OpenFileMapping(FILE_MAP_WRITE,{获取完全访问映射文件}
False,{不可继承的}
LPCTSTR(MappingFileName));{映射文件名字}
if hMapObj = 0 then
begin
ShowMessage('不能定位内存映射文件块!');
Halt;
end;
pShMem := MapViewOfFile(hMapObj,FILE_MAP_WRITE,0,0,0);
if pShMem = nil then
begin
ShowMessage('映射文件错误'+ IntToStr(GetLastError));
CloseHandle(hMapObj);
Halt;
end;
FillChar(pShMem^, SizeOf(TShareMem), 0);
pShMem^.hProcWnd := Self.Handle;
fWndClosed:=false;
end;
****MappingFileName没有声明或者定义
不知道怎么修改
 
你是要用共享内存,MappingFileName就是你要用的共享内存的名字,自己起一个就可以了。如果其他程序要跟这个程序共享这段内存,取的名字一样就可以访问得到,它是按名字访问的。
 
我给MappingFileName定义了,是string类型,还是不行,应该定义什么类型?
 
你建立的(用CreateFileMapping)映像也是用的'test'

hMapObj := OpenFileMapping(FILE_MAP_WRITE,{获取完全访问映射文件}
False,{不可继承的}
'test');{映射文件名字}
 
你这个程序好象是 delphi下深入windows....那本书里的
里面的例子是
const
MappingFileName = 'GetWord32 for 9x NT 2000';
 
映射文件名字在delphi系统中需要定义MappingFileName,我给MappingFileName定义了,是string类型,还是不行,应该定义什么类型?
 
使用了pchar也不行
 
在exe 文件中
const
StrProcNames : array[fTextOutA..fDrawTextW+1] of String =
('来自TextOutA',
'来自TextOutW',
'来自ExtTextOutA',
'来自ExtTextOutW',
'来自DrawTextA',
'来自DrawTextW',
'来自菜单');
***fTextOutA..fDrawTextW没有声明或者定义,在用共享内存中使用了‘暗夜中独舞’的
“暗夜中独舞....
const
MappingFileName = 'GetWord32 for 9x NT 2000'; ”
使用的共享内存部分就正常了,不知道fTextOutA..fDrawTextW需要补什么语句。
 
多人接受答案了。
 
后退
顶部