2010-03-12 4 views
4

La fonction non géré (pure C++, si cela importe):appel C++ fonction avec le paramètre de référence de cli

void fooC(float& result); 

Je définis l'emballage comme (wrapper managé, C++ \ cli):

void foo(float% result) //managed interface, need to pass result back to caller 
{ 
     fooC(???);//how to call unmanaged function? 
} 

comment passer le paramètre de référence dans l'encapsuleur?

Répondre

5

Vous ne pouvez pas convertir une référence de suivi en une référence ou un pointeur non géré. Le garbage collector causerait des ravages lorsque le flottant passé est un champ dans un objet. Vous aurez besoin d'utiliser un temporaire:

void foo(float% result) { 
    float temp; 
    fooC(temp); 
    result = temp; 
    } 
Questions connexes