Hi,
 
I have compiled LibVirt 0.7.4 under mingw, and I want to use it with domain callback. Here is a a code sample of my situation (I'm using visual studio) :
 

static int domain_event(virConnectPtr conn,

virDomainPtr dom,

int evt,

int detail,

void *opaque)

{

bool test = true;

return 0;

}

int _tmain(int argc, _TCHAR* argv[])

{

virConnectPtr conn = virConnectOpen("qemu+tcp://192.168.220.198/session");

// Set Callback

int cbresult = virConnectDomainEventRegister(conn, domain_event, NULL, NULL);

// Lookup Domain

virDomainPtr dom = virDomainLookupByName(conn, "Test1");

if (virDomainIsActive(dom) == 1)

{

// Start Domain

int startDom = virDomainCreate(dom);

if (startDom != 0)

{

virErrorPtr e = virGetLastError();

bool test = true;

}

}

else

{

// Stop Domain

int StopDom = virDomainDestroy(dom);

if (StopDom != 0)

{

virErrorPtr e = virGetLastError();

bool test = true;

}

}

return 0;

}

 
This code works well when I did'nt use callbacks, but when I use it, it throw an error at the virDomainCreate or virDomainDestroy call. In the application windows (console) I have an "unmarshaling msg", I have study the case it comme from the call of "xdr_string" method in the "xdr_remote_nonull_string" method (remote_protocol.c).
 
I think, the xdr_string method is unable to marshall strings from the XDR* object to a char**.
 
I've tried with dynamic linking or static linking of libvirt lib. Have you any clue to have work callbacks ?
 
Best Regards,
 
Arnaud Champion