var hMutex: HWND; begin hMutex := CreateEvent(nil,False,False,'互斥体名称'); if GetLastError = ERROR_ALREADY_EXISTS then begin MessageBox(0,'不能访问内在共享!','Error!',0); Exit; end; try ...处理内存共享 finally ReleaseMetux(hMutex);//或者用CloseHandle(hMutex) end; end;//这个跟限制程序多开的原理是一样的,上面的互斥体名称是必须的,另外你还可以用事件,信号量,原理都一样
hMutex: HWND;
begin
hMutex := CreateEvent(nil,False,False,'互斥体名称');
if GetLastError = ERROR_ALREADY_EXISTS then
begin
MessageBox(0,'不能访问内在共享!','Error!',0);
Exit;
end;
try
...处理内存共享
finally
ReleaseMetux(hMutex);//或者用CloseHandle(hMutex)
end;
end;//这个跟限制程序多开的原理是一样的,上面的互斥体名称是必须的,另外你还可以用事件,信号量,原理都一样
这是比较简单的
http://msdn.microsoft.com/en-us/library/aa366551(v=VS.85).aspx
微软的例子写的很详细
2、然后把读写变成ShareMemory
3、变成多进程。这样的做法比较可取。再加上,进程间共享内存,本来就是一个有难度的话题,
lz 可以多花点时间研究下。
鉴于网上资料确实很少,有用的真的不多。
如果愿意,研究出来后,让我们这些有兴趣的人,也学习一下。
在这,先谢了。