i write plugin (on VC++ 6.0)
part:
case PE_INITIALIZE:           // plugin initialization, issued only by &RQ
			_irqver ver;
			currpos+=readfrombuff(comm,currpos,&ver,sizeof(ver));
			if(ver.api_version!=APIversion)
			{
				//api error
				return 0;
			}
			int UIN;
			int strlen;
			char RQ_path[MAX_PATH];memset(RQ_path,0,MAX_PATH);
			char user_path[MAX_PATH];memset(user_path,0,MAX_PATH);
			//
			currpos+=readfrombuff(comm,currpos,&strlen,sizeof(int));
			currpos+=readfrombuff(comm,currpos,RQ_path,strlen);
			currpos+=readfrombuff(comm,currpos,&strlen,sizeof(int));
			currpos+=readfrombuff(comm,currpos,user_path,strlen);
			currpos+=readfrombuff(comm,currpos,&UIN,sizeof(int));
			MessageBox(0,lstrcat(lstrcat(RQ_path,"\n"),user_path),"",0);
			result+=(char)PM_DATA;
			result+=(BYTE*)_istring("Test plugin");
			result+=(BYTE*)_int(APIversion);
			break;
then i send packet:
	LPSTR retpacket=(LPSTR)LocalAlloc(LPTR,result.size()+sizeof(int));
	len=result.size();
	memcpy(retpacket,&len,sizeof(int));
	if(len)memcpy(retpacket+sizeof(int),result.c_str(),len);
	return retpacket;
there is access violation of memory exeption in &RQ!!!
but i saw the packet byte by byte - all right!
what the problem?[/code]