CLR - Utiliser CString et System::String^ [Résolu]

Signaler
Messages postés
184
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
1 septembre 2010
-
Messages postés
184
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
1 septembre 2010
-
Bonjour à tous,

j'ai créé une dll managée C++ (VS2005) pour utiliser avec une application C#.
Cette Dll managée charge statiquement une dll non managée dont certaines fonctions prennent un CString en argument.
Cependant, dans ma dll managée, le type CString est inconnu.

Dll non managée
unsigned long fn_GetFileVersion(unsigned char byType, CString sFile)


Dll managée
unsigned long fn_GetFileVersion(unsigned char byType, String^ sFile)


En cherchant sur le net, j'ai vu que je pouvais mettre :
#include 


Lorsque je compile, j'ai une erreur LNK 2028 : jeton non résolu...

Il semble y avoir une incompatibilité entre les CString des 2 dlls.


Si quelqu'un a une idée?


Merci d'avance

--------------------------------------------------------------------------------
Phantom_2005

2 réponses

Messages postés
184
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
1 septembre 2010
1
Problème résolu!
J'avais mis le include du header de la dll MFC dans le .c de la dll managée.
Je l'ai placée dans le .h et cà fonctionne...

J'ai ensuite remplacé le stdafx.h qui était dans le projet la dll managé par celui de la dll MFC.


--------------------------------------------------------------------------------
Phantom_2005
<font color="#0000
Messages postés
184
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
1 septembre 2010
1
J'ai également un warning sur les variables CString de ma dll non managée:

warning C4251: 'CMF_GDTex::sWorkingPathScan' : class 'ATL::CStringT'
nécessite une interface DLL pour être utilisé(e) par les clients de class 'CMF_GDTex'


Si ca peut aider...

--------------------------------------------------------------------------------
Phantom_2005
<font color="#0000