现在的位置: 首页 > 综合 > 正文

C++ 进程通信 管道

2013年01月07日 ⁄ 综合 ⁄ 共 1154字 ⁄ 字号 评论关闭

// OpenPipe.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<windows.h>
#include<cstdlib>
#include<iostream>
using namespace std;

HANDLE hPipe;

void OpenPipe()
{

	 hPipe = CreateFileA("\\\\.\\Pipe\\pipe_xg", GENERIC_READ | GENERIC_WRITE, 
  0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

	 if( INVALID_HANDLE_VALUE == hPipe)
	 {
		 cout<<"打开通道错误"<<endl;
		 return ;
	 }
	
	 BOOL bConnect = ConnectNamedPipe(hPipe,NULL);
	 if(!bConnect)
	 {
		 cout<<"连接管道错误"<<endl;
		 return ;
	 }
	 
	//CloseHandle(hPipe); // 关闭管道句柄
}

void WriteData(char* data)
{
	 DWORD WriteNum;
	 BOOL bWrite = WriteFile(hPipe,data,strlen(data), &WriteNum, NULL);
	 FlushFileBuffers(hPipe);
	 //DisconnectNamedPipe(hPipe);
	 if(bWrite)
	 {
	 }
	 else
	 {
	 }
}


#define WIDTH 6
#define HEIGHT 6

struct SPatch{
	int row,col,cx,cy,width,height;//行,列,中心点横纵坐标,patch宽,高
	int type,level;//pe图片类型,1是blur,2是noise,level是blur和noise的级别(取1,2,3,4)
	float blurFeature[3];
	float noiseFeature[3];
}imagePatch[WIDTH][HEIGHT];
//比如我定义这么一个结构体,我要是给数组循环赋值,我应该怎么做
//比如


int _tmain(int argc, _TCHAR* argv[])
{
#if 1
	OpenPipe();
	WriteData("111");
	getchar();
	WriteData("222");
	getchar();
	CloseHandle(hPipe);

	for(int i=0;i<WIDTH;i++)
	{
		for(int j=0;j<HEIGHT;j++)
		{
			imagePatch[i][j].cx = 1000;
			imagePatch[i][j].noiseFeature[0] = 1.9;
			imagePatch[i][j].height = 1000;
		}	
	}
#endif

	return 0;
}

抱歉!评论已关闭.