En C++Builder 2007, mon CodeGuard me fait souvent des VA à la fermeture du projet, je crois que c'est au moment du déchargement des Packages
Cela a été amélioré en XE2
Sinon attention, ne partage pas d'objet entre EXE et DLL, évite de créer d'un côté et libérer de l'autre côté !
Tu n'échange tout de même pas un vector directement ?
Ta DLL ne pourra être utilisé qu'avec uniquement la version de ton compilateur (un vector de C++Builder6 n'aura peut-être pas la même gueule mémoire que celui de C++BuilderXE2, et je ne parle même pas des autres compilateurs C++)
En plus, ça ne fait pas des copies dans tous les sens ça ?
Tu devrais plutôt faire une fonction respectant les conventions WinAPI
BOOL __stdcall mLgetFaults(TEventData* Buf, int& BufCount);
Buf est alloué du côté appelant, il indique le nombre d'élement possible par BufCount (en nombre d'item) ou un BufSize en octet
cela renvoi un code d'erreur pour signaler un Buf trop petit
Typiquement, si tu fournis Buf NULL, la fonction calcule BufCount, permettant d'allouer la mémoire !
Partager