Bonjour,
je n'arrive pas à utiliser une classe que j'ai écrite en c++ managé dans du C#.
Voici ma classe, tres basique:

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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
ref class CartesianPoint
{
private:
 
	double mX;
	double mY;
	double mZ;
 
public:
	CartesianPoint();
	CartesianPoint(CartesianPoint %aPoint);
	CartesianPoint(double aX, double aY, double aZ);
 
	property double X
	{ double get(); void set(double aX);}
	property double Y
	{ double get(); void set(double aY);}
	property double Z
	{ double get(); void set(double aZ);}
 
	CartesianPoint operator+(CartesianPoint %aPoint);
	CartesianPoint operator-(CartesianPoint %aPoint);
	CartesianPoint %operator-=(CartesianPoint %aPoint);
	CartesianPoint %operator+=(CartesianPoint %aPoint)
	{
		X += aPoint.X;
		Y += aPoint.Y;
		Z += aPoint.Z;
		return (*this);
	}
 
	CartesianPoint %operator-();
	CartesianPoint %operator=(CartesianPoint %aPoint);
	bool operator==(CartesianPoint %aPoint);
	bool operator!=(CartesianPoint %aPoint);
 
};
Les méthodes sont définies dans un fichier cpp. Elle compile tres bien.

Et je veux faire en c# qqc comme:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
            CartesianPoint pt1 = new CartesianPoint(1.0,2.0,3.0);
            CartesianPoint pt2 = new CartesianPoint(4.0,5.0,6.0);
            pt2 += pt1;
J'obtiens l'erreur CS0019 sur la ligne 3. J'ai lu pas mal d'articles sur la surcharge des opérateurs en c++ cli, mais je ne trouve pas d'example d'utilisation en c#.
Quelqu'un peut il m'aider?
Merci.