Adding #pragma make_public (Type) não remove o erro C3767

Tenho um Assembly (A) que define uma classe Managed que possui um construtor público que usa dois tipos nativo

Tenho acesso aos arquivos de cabeçalho e arquivos lib compilados que contêm os tipos nativo

Criei umC++/CLI projeto e definiu umref class que contém um únicopublic: static método que retorna um tipo público definido em (A

Quando tento construir, passando em um tipo nativo, recebo a função `C3767 'YourType :: TypeB': Candidate (s) não acessíve

Eu já adicionei#pragma make_public(Type) para os tipos nativos e qualquer tipo de qual derivam, mas ainda não alegri

Meu cabeçalho da classe:

#pragma once
#include "StdAfx.h"

using namespace System;
using namespace AssemblyA;

namespace NativeWrapper {
    ref class MyFactory
    {
    public:
        static AssemblyAType^ Build();
    };
}

Meu arquivo cpp:

#include "StdAfx.h"

#pragma make_public(nativeObjectRoot)
#pragma make_public(nativeObjectDerived)


#include "MyFactory.h"

using namespace System;

using namespace NativeWrapper;

AssemblyAType^ MyFactory::Build()
{
  nativeObjectDerived* myNativeObject;
  //myNativeObject initialised and set up here
  return gcnew AssemblyAType(myNativeObject); <--C3767
}

Procurei e o tipo gerenciado `AssemblyAType 'tem um construtor público com esta assinatura. Parece que o pragma não funciona?

Então, para resumir.

projeto @My C ++ / CLI faz referência a um assembly de terceiros que define um tipo que usa um tipo nativo em seu construtor. Meu projeto também possui os arquivos de cabeçalho / lib adicionados / vinculados a.

Nota: meu código acima não é exatamente o que tenho, mas retirei as partes pertinente

questionAnswers(2)

yourAnswerToTheQuestion