EEFileLoadException Lors du Chargement de DLL C++ dans la gestion des DLL

J'ai une C++ DLL que je voudrais appeler à partir de l'intérieur d'un C# exe. J'ai regardé dans les solutions possibles, et il me semble que la meilleure chose à faire est d'utiliser le C++/CLI comme un wrapper pour le C++ de la classe. J'ai donc écrit en C++/CLI classe qui ressemble à cela, et est compilé dans une DLL (je sais qu'il doit avoir un destructeur et un outil de finalisation, mais jusqu'à présent, le code ne sera pas obtenir dans la fonction Principale, donc j'exclus pour des raisons de simplicité):

#include <cppheader.h>

using namespace System;

namespace DependencyInterface
{
  public ref class DependencyTester
  {
  public:
    DependencyTester()
    {
      _class = new CPPClass();
    }

  private:
    CPPClass* _class;
  };
}

Je puis avoir un C# exécutable qui ressemble à ceci:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using DependencyInterface;

namespace DependencyTest2
{
    class Program
    {
        static void Main(string[] args)
        {
            DependencyTester tester;
        }
    }
}

Malheureusement, lorsque j'essaie d'exécuter le code, j'ai le C++ exception:

First-chance exception at 0x000007fefd5a9e5d in DependencyTest2.exe: Microsoft C++ exception: EEFileLoadException * __ptr64 at memory location 0x0094ca58..

J'ai essayé de définir un point d'arrêt sur la première ligne de la Main, mais l'exception est levée avant l'exécution atteint ce point. Si je frappe "continuer" (je suis en utilisant MVS 2010), je reçois ceci:

First-chance exception at 0x76d8c5e2 in DependencyTest2.exe: 0xC0000005: Access violation reading location 0x0000000000000020.

Quelqu'un aurait-il des conseils? C'est sur Windows 7 x64, et tout a été compilé pour x64, y compris la DLL C++.

J'ai besoin de voir la trace de la pile pour faire l'appel. Mais d'abord passer votre débogueur à la mode, donc vous pouvez voir la réelle exception géré(s).

OriginalL'auteur | 2013-05-28