Casse-tête... Class Library C++/CLI vers C#?

Casse-tête... Class Library C++/CLI vers C#? - C#/.NET managed - Programmation

Marsh Posté le 06-04-2010 à 18:57:47    

Bonjour à tous et à toutes, et merci de visiter ce thread :o
 
Je viens de me remettre sur VS2008 avec pour objectif de réimplémenter des classes actuellement en C# en code natif, et depuis hier je me bats avec mon nonos...
 
Après plusieurs essais dans tous les sens, le plus intéressant/propre semble être de réaliser une classe de wrapping en C++/CLI autour des classes natives, mais après plusieurs essais pour créer une classe de test j'obtiens toujours le même message d'erreur:
 

Citation :

Impossible de charger le fichier ou l'assembly 'TestDLL2, Version=1.0.3748.31611, Culture=neutral, PublicKeyToken=null' ou une de ses dépendances. Tentative de chargement d’un programme de format incorrect.


 
 
J'ai par acquis de conscience tenté de reproduire l'appli de test dans un projet C++, et étrangement, elle fonctionne.
 
Tout ça pour en arriver à la grande question: y a-t-il quelque chose d'anormal dans ce code?
 

Code :
  1. // TestDLL.cpp
  2. public ref class TestClass
  3. {
  4. public:
  5.     static bool TestFunc()
  6.     {
  7.         return true;
  8.     }
  9. };
  10.  
  11. // TestApp.cpp
  12.  
  13. int main(array<System::String ^> ^args)
  14. {
  15.     Console::WriteLine(TestClass::TestFunc().ToString());
  16.     Console::ReadLine();
  17.     return 0;
  18. }
  19.  
  20.  
  21. // TestApp.cs
  22.  
  23. static void Main(string[] args)
  24. {
  25.      Console.WriteLine(TestClass.TestFunc().ToString());
  26.      Console.ReadLine();
  27. }


 
Etant donné que les 2 "IHM" font exactement la même chose, tout du moins en théorie, et que seule celle réalisée en C++ quel pourrait être le problème? (note: dans les 2 cas il est fait référence au projet de la DLL contenu dans la même solution)

Reply

Marsh Posté le 06-04-2010 à 18:57:47   

Reply

Marsh Posté le 07-04-2010 à 14:33:50    

Du nouveau...
 
Ca fonctionne bel et bien avec l'appli test C#, mais à l'unique condition de compiler avec /clr:safe, ce qui est loin de m'arranger sachant que je veux du code natif derrière.
 
Sinon, y a-t-il une solution "propre" pour réaliser une DLL COM? Le wizard me pond un paquet de fichiers sans vraiment expliquer quoi que ce soit.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed