Salut,
J'ai besoin de savoir comment le c++ determine si un argument est passé par adresse ou par valeur.
Bien que sachant le rôle du *,& et du int,const ....
Un cas particulier me pose problème:
Cette fonction passe son argument par adresse
DECLARE_INTERFACE_(ID3DXBaseMesh, IUnknown)
{
...
STDMETHOD(GetDeclaration)(THIS_ D3DVERTEXELEMENT9 Declaration[MAX_FVF_DECL_SIZE]) PURE;
..
}
Je l'ai vérifié en la décompilant.
Celle ci passe deux arguments par valeur
HRESULT AssocCreate(CLSID clsid,REFIID riid,LPVOID *pqa);
Si on voit clairement que LPVOID *pqa est passé par adresse (*) il n'en va pas de même pour
D3DVERTEXELEMENT9 ,rien n'indique un passage par adresse.
Les deux fonctions ont ceci de commun,elles passent des structures en arguments.Les structures ont une taille supérieur a un dword.
Quelqu'un peut il éclairer ma lanterne ?
ToutEnMasm