L'Utilisation de C++/CLI à l'Intérieur Application C#

J'essaie d'appeler ma bibliothèque C++ à partir de mon application C# (via C++/CLI). J'ai suivi l'exemple de cette question (pour mon application). Le programme d'installation de mon application:

  • Projet1: Projet C++ (j'ai compiler une DLL)
  • Projet2: Projet C++ (mon CLR wrapper; le fichier d'en-tête par l'exemple ci-dessus; les références Projet1)
  • Project3: Projet C# (références Project2)

Malheureusement, quand j'ai fait aller à accéder à la CLR objet wrapper dans mon application en C#, j'ai l'erreur suivante:

Le type ou le nom d'espace de noms 'YourClass'
n'a pas pu être trouvée (vous manque un
à l'aide d'une directive ou d'une assemblée
de référence?)

Je n'ai le projet de programme d'installation incorrecte, ou est-il autre chose que je devrais être à la recherche d'? (Malheureusement, je ne peux pas afficher le code de propriété raisons, mais il est très simple morceau de code et facilement suit l'exemple ci-dessus.)

Mise à jour:

Donc j'ai fait exactement ce que Chris a dit de le faire (voir la réponse ci-dessous), mais je suis encore à la réception d'un message à partir de mon application C# que "le type ou Le nom d'espace de noms 'MyProgram' n'a pas pu être trouvée (vous manque une directive using ou une référence d'assembly?). Voici un (mock-up) de mon code.

  • Projet1 - C'est mon application C++. Il compile/œuvres. Je l'ai utilisé ailleurs. (J'ai une DLL de cette construction.)
  • Project2 - Voici mon code pour mon wrapper.

MyWrapper.h

#pragma once

#include "myorigapp.h"

using namespace System;

namespace MyProgram
{
    public ref class MyWrapper
    {
    private:
        myorigapp* NativePtr;

    public:
        MyWrapper() 
        {
            NativePtr = new myorigapp();
        }

        ~MyWrapper() 
        { 
            delete NativePtr;
            NativePtr = NULL;
        }

        void dostuff()
        { 
            NativePtr->dostuff(); 
        }
    }
}
  • Project3 - C'est mon application C#.

Programme.cs

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

using MyProgram;

namespace Testing
{
    class Program
    {
        static void Main(string[] args)
        {
            MyWrapper p = new MyWrapper();
            p.dostuff();
        }
    }
}

Project3 références Project2 les références de Projet1. Tout ce qui appuie sans erreurs (à l'exception de l'erreur que j'ai décrit ci-dessus dans le code C# sur la using MyProgram ligne).

êtes-vous manque une directive using ou une référence d'assembly?
vous doit poster du code, si vous ne voulez pas afficher l'original de la chose, peut-être vous pouvez extraire les éléments pertinents, de les simplifier et de modifier certains noms etc.
Mise à jour de la question avec le code et les plus d'informations.

OriginalL'auteur JasCav | 2011-04-13