2010-04-15 2 views
0

J'utilise C# DLL dans une application VC++. J'ai quelques détails dans VC++ commePassage de la structure de VC++ à C#

PageNumer 
pageTitle 
PageDesc 
BoxDetail 

Je dois les passer à C# DLL. J'ai donc fait une structure dans VC++, puis je passe ça à C#. Mais je ne pouvais pas faire ça. Aidez-moi, s'il vous plaît.

VC++ Fonction:

struct SCS3OverVwPg 
{ 
__int32 iOvrPgNo;  
char sOvrPgTitle[30]; //OverView Page Title 
}; 


void CToolTab::SendOverview() 
{ 
    SCS3OverVwPg *pOverVw = 0; 
    pOverVw = new SCS3OverVwPg;  
    Globals1::gwtoolbar->SetTree(pOverVw); 
} 

fonction C#:

public struct SCS3Over 
{ 
    Int32 iOvrPgNo; 
    char[] sOvrPgTitle; 
} 

public void SetTree(SCS3Over x) 
{ 
    MessageBox.Show("Data received");   

} 

Si je fais comme ça, il montre l'erreur

erreur C2664: « tabcontrol :: ToolBar :: SetTree ': impossible de convertir le paramètre 1 de' SCS3OverVwPg * 'à' SCS3Over '

Si je change le nom de la DLL C# en SCS3OverwPg, cela indique error of structure redifinition. Aidez-moi, s'il vous plaît.

+0

Votre code C++ est-il écrit en C++/CLI ou C++? –

+0

Dans VS2008, application MFC – Anu

Répondre

0

Je dois supposerons que vous utilisez C++ managé ...

Au lieu de redéclarant struct managé C++, juste référence au type struct de l'ensemble C#, et l'utiliser lors de l'appel de la fonction.

Questions connexes