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]