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 :
Ç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
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