rejetto forum

Write plugins in C: some resources

TC · 4 · 11549

0 Members and 1 Guest are viewing this topic.

Offline TC

  • Tireless poster
  • ****
    • Posts: 117
    • View Profile
At the address http://www.ebcorp.org/devel/&rq/ there are some docs and resources about writing C plugins for &rq 0.9+.
I think that my work can be helpful for others potential C-developers...
now some docs are in Italian; I'm working on translations in eng.
I'm also working on pluginUtils pack: I want expand it with a rich set of functions.

Greetings, TC <tc@yesis.com> - #56979793
Quando digitai in command.com la prima volta 'ls' invece di 'dir', capii cosa mi stava succendendo...


Offline rejetto

  • Administrator
  • Tireless poster
  • *****
    • Posts: 13510
    • View Profile

Offline Gilmour

  • Occasional poster
  • *
    • Posts: 30
    • View Profile
The sample plugin doesn't work... i can't take this for example... :(
It may be that there is a problem with the new version released?
Se le persone che parlano male di me sapessero cosa dico io di loro... parlerebbero peggio!
Jim Morrison


Vaulter

  • Guest
i write plugin (on VC++ 6.0)
part:

Code: [Select]
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:
Code: [Select]
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]