[C++] Problème de gestion de SAFERRAY transmis à une f° d'une dll

Problème de gestion de SAFERRAY transmis à une f° d'une dll [C++] - C++ - Programmation

Marsh Posté le 11-05-2004 à 09:52:18    

voici mon code :
 
 

Code :
  1. void Ovostable(machine* pMa, SHORT* sNumBytes, AtMemoryType* eMemType, long* lStartAddr, BYTE* abBuffer)
  2. {
  3. //reads from memory
  4. SAFEARRAY* psa  = NULL;
  5. psa = SafeArrayCreateVector(VT_UI1, 0, *sNumBytes);
  6. BYTE* pbData;
  7. HRESULT hr = SafeArrayAccessData(psa, (void HUGEP**)&pbData);
  8. pMa->ReadMemory(*eMemType, *sNumBytes, *lStartAddr, &psa);
  9.         //code à venir pour transferer les bytes lus dans abBuffer
  10. }


 
la fonction ReadMemory est décrite dans une dll commerciale, qui fonctionne.
Elle doit lire la mémoire d'un periphérique, et l'écrire dans le  SAFEARRAY pointé par psa. Les données sont en théorie accesibles par le pointeur pbData.
 
Problème, quelquesoit i, pbData[i] vaut zero !
Comme la fonction de la dll n'est pas déféctueuse, je pense que le pb vient de ma méconnaissance en SAFERRAY.
 
Pourriez vous me renseigner ?
merci d'avance.
 
DaN

Reply

Marsh Posté le 11-05-2004 à 09:52:18   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed