one.cpp
#include <windows.h>
#include <stdio.h>
#define PROG_NAME "李白"
HANDLE lb_to_cp, cp_to_lb; //声明信号量
void P(HANDLE s) //P操作
{
WaitForSingleObject(s, INFINITE);
}
void V(HANDLE s) //V操作
{
ReleaseSemaphore(s, 1, NULL );
}
int main()
{
int i=0;
HWND hwnd=GetForegroundWindow(); //获取程序窗口句柄
char acts[][9]={"炮二平五","马二进三","车一进一","车一平六","车六进七","车九进一","炮八进五","炮五进四","车九平六","前车进一","车六平四","车四进六","炮八平五"};
HANDLE hMapping=CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE, 0,0x100,"CHESS_BOARD"); //创建共享内存
LPSTR chess_menu=(LPSTR)MapViewOfFile(hMapping,FILE_MAP_ALL_ACCESS,0,0,0); //进程连接共享内存,得到共享内存首地址
lb_to_cp=OpenSemaphore(SEMAPHORE_ALL_ACCESS,FALSE,"Global\\lb_to_cp"); //信号量初始化为0
cp_to_lb=OpenSemaphore(SEMAPHORE_ALL_ACCESS,FALSE,"Global\\cp_to_lb"