Bonjour à tous,

Dans le cadre de mes études, je dois créer une jeux en C# WPF (4.0) utilisant une IA en C++.

J'essaye de récupérer une valeur depuis une méthode d'une classe de mon projet C++ et de l'afficher dans une méthode du projet C#.

J'ai donc une méthode (C #) qui crée un objet du projet C++ :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
int valeur = 0;
Test test = new Test();
valeur = test.calculate();
Console.WriteLine("Valeur test : " + valeur);
J'ai créé un projet de bibliothèque de classes en C++ :

header IA.h :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
// IA.h
 
#pragma once
 
using namespace System;
 
namespace IA 
{
    public ref class Test
    {
          public : int calculate();
    };
}
Code IA.cpp :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
// This is the main DLL file.
 
#include "stdafx.h"
#include "IA.h"
 
namespace IA
{
     int Test::calculate ()
    {
	 return (2);
    }
}
J'ai ajouté la référence dans l'assembly de mon projet C# et la clause using dans le fichier utilisant l'objet Test.
Quand je crée l'objet dans le code, le compilateur reconnu le type de l'objet.

Lors du runtime, si je crée une instance de l'objet Test, je reçoit l'erreur suivante :

BadImageFormatException - Could not load file or assembly 'IA, Version=1.0.4196.31687, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An attempt was made to load a program with an incorrect format.
J'ai essayé avec différent type de projet C++ et j'obtiens la même erreur. Quelqu'un aurait-il une idée ?

Merci d'avance pour vos réponses