Retourner un tableau

N

Nic

Guest
Bonjour à tous ... encore :)

J'ai un Add-In qui enregistre une fonction qui retoune un OPER*
(type 'p' lors de l'enregistrement)

Dans tous les exemples que j'ai vus, on fait quelque chose de la sorte :

Code:
OPER* __stdcall MyFunc(...) 
{ 
    static OPER sRet; 
    static OPER sArray[nombreElements]; 
    ... 
    //faire quelque calculs 
    ... 
    // remplir sArray 
    // affecter sArray a sRet et mettre le type de sRet comme étant un tableau
    return &sRet; 
}

Ça fonctionne bien, mais j'ai quelques questions :

1 - Avec cette exemple je peux retourner quelque chose dans 'nombreElements' cellules. Par exemple, si 'nombreElements' est 3, je pourrais retourner quelque chose dans A1, A2, A3

Mais qu'arrive-t-il si je veux retourner un tableau de 3 par 3 (A1, A2, A3, B1, B2, B3)???

2 - Qu'arrive-t-il si je ne connais pas à priori le nombre d'éléments qu'il va y avoir dans mon tableau. Est-ce que je peux juste faire un 'malloc' d'un tableau et ensuite tout oublier? ... je ne crois pas.
En d'autre terme, y a-t-il un moyen de passer outre les fonctions statiques sans avoir de memory leaks?

p.s. j'ai vu qu'on pouvait utiliser le type (xltypeMulti | xlbitDLLFree) et que Excel allait appeler la fonction xlAutoFree. Par contre, dans l'exemple que j'ai vu, il déclarait une variable globale 'HANDLE hArray;' qui était allouée dans la fonction et désallouée dans xlAutoFree. Par contre, qu'arrive-t-il dans le cas où la fonction est dans plusieurs cellule ... Idéalement il faudrait avoir 1 HANDLE par cellule qui possède la formule non? Je n'arrive pas à bien saisir.

Merci beaucoup pour votre précieuse aide!

Nic
 

Discussions similaires

Réponses
0
Affichages
235

Statistiques des forums

Discussions
312 330
Messages
2 087 335
Membres
103 523
dernier inscrit
mounir2025