Enlace a lib estática con componentes administrados

Después de crear una GUI para mi pequeña aplicación personal, estoy tratando de compilarla como una biblioteca estática para usar en otro proyecto. La GUI se crea y realiza otras tareas con ella a través de una clase de referencia pública administrada que actualmente solo tiene 5 funciones, pero se agregará a.

Este es mi archivo de encabezado en la biblioteca estática que se incluiría en el otro proyecto (bueno, al menos uno nuevo con solo las funciones públicas, se eliminarían todas las cosas adicionales);

#ifndef GUIInterface_H
#define GUIInterface_H
#include 
#include "MainForm.h"

using namespace System;
using namespace System::Threading;

 public ref class GUIInterface
{
private:
    ThreadStart^ GUIThreadDelegate;
    Thread^ GUIThread;
    void GUIThreadFunction()
    {
        ANNGUI::Application::EnableVisualStyles();
        ANNGUI::Application::Run(gcnew ANNGUI::MainForm());
        return;
    }

public:
    int CreateGUI();

    int DestroyGUI();

    int GetInputData();

    bool CheckNewInput();

    int NetworkState();
};
#endif

Así es como se accedería desde el otro proyecto (.exe)

#include "main.h"

int main()
{
    GUIInterface ^GUI = gcnew(GUIInterface);
    GUI->CreateGUI();
    return 0;
}

El main.h solo contiene las definiciones de clase como el archivo de encabezado que se muestra arriba, menos las cosas privadas.

Estoy usando Visual Studio 2010 Express C ++. Ambos proyectos se compilan con el modificador / clr. La biblioteca estática se establece como referencia en el proyecto .exe. Cuando compilo la biblioteca estática como una DLL, el programa se ejecuta perfectamente (después de eliminar main.h en la aplicación). Cuando se compila como una biblioteca estática, recibo un error LNK2020 para cada una de las funciones utilizadas para comunicarse con la GUI.

I vinculé el .exe con la opción / VERBOSE para ver el resultado. El vinculador se ve exactamente donde está .lib varias veces, pero nunca dice que lo encontró a pesar de que está buscando EXACTAMENTE en la ruta correcta y para el archivo correcto. Además, si significa algo, mi .lib funciona bien, pero recibe esto como una advertencia.

.NETFramework,Version=v4.0.AssemblyAttributes.obj : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library

Mi pregunta es, ¿por qué el enlazador busca el .lib en el lugar correcto, pero no lo ve justo en frente de su cara? ¿Cómo puedo solucionar esto para poder usar mi .lib estático?

Respuestas a la pregunta(1)

Su respuesta a la pregunta