Bonjour le forum C++,

Je cherche à utiliser des assemblies .Net dans du code VC++ 6.0.

Les renseignement que j'ai trouvé par si par là mon poussé à procéder comme ceci :

1) Assembly Codé en C# (avec SharpDevelop) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using System.Runtime.InteropServices;  
namespace ManagedServer
{
	[ClassInterface(ClassInterfaceType.AutoDual)]  
 
	public class CManagedServer  // public IManagedServer
	{
		public CManagedServer()
		{}
		public string SayHello(string r_strName) 
		{
			string str ;
			str = "Hello " + r_strName ;
			return str ; 
		}
	}
}
2) Je place l'assembly dans le projet C++ ainsi que dans le sous-répertoire \Debug


3) Puis j'enregistre dans la base de registres l'assembly et génère un tlb grace à la commande :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
regasm /tlb:ManagedServer.tlb ManagedServer.dll

4) Je code comme ceci en VC++ 6.0 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "stdio.h"
#import "ManagedServer.tlb"
 
using namespace System;
using namespace mscorlib;
using namespace System::Runtime::InteropServicess;
using namespace ManagedServer;
 
int main(int argc, char* argv[])
{
	HRESULT hr = CoInitialize(NULL);
 
	_CManagedServerPtr ptr(__uuidof(CManagedServer));
 
	printf("%s\n", ptr->SayHello("World") );
 
	CoUninitialize();
	return 0;
}

==> Erreur à la compilation du style :
\debug\managedserver.tlh(62) : error C2501: '_TypePtr' : missing storage-class or type specifiers

Il ne semble pas trouver les definition de _TypePtr dans les fichier .tlh et .tli qui sont des fichiers auto-généré par Visual C++.


Je n'arrive pas résoudre ce problème. Quelqu'un aurait il une idée ?

D'avance Merci
Nitram