Библиотека классов - Статическая библиотека - Выпуск компоновщика LNK4221 - PullRequest
1 голос
/ 09 января 2011

Я использую VS2008, шаблон библиотеки классов, с / кл.Я хотел иметь управляемую библиотеку классов.Все отлично работает, когда у меня библиотека скомпилирована как dll.

Заголовочный файл: multiclasses.h

#pragma once

namespace multiclasses
{
    public ref class Class1
    {
    public: int a, b;
    private: int c, d;
    public: int add(int a, int b);
    private: int hadd(int a, int b);
    };

    private ref class Class2
    {
    public: int a, b;
    private: int c, d;
    public: int add(int a, int b);
    private: int hadd(int a, int b);
    };
}

Исходный файл: multiclasses.cpp

#include "multiclasses.h"

namespace multiclasses
{

    int Class1::add(int a, int b)
    {
        return a + b;
    }
    int Class1::hadd(int a, int b)
    {
        return a + b;
    }

    int Class2::add(int a, int b)
    {
        return a + b;
    }
    int Class2::hadd(int a, int b)
    {
        return a + b;
    }
}

КогдаЯ изменяю тип конфигурации на статическую библиотеку (.lib). Я получаю предупреждение компоновщика: предупреждение

предупреждение LNK4221: общедоступные символы не найдены;член архива будет недоступен

Следовательно, проект, использующий эту библиотеку, выдает:

Ошибка 1, ошибка LNK2020: неразрешенный токен (06000001) multiclasses.Class1 :: add

Ошибка 2, ошибка LNK2020: неразрешенный токен (06000002) мультиклассы. Класс1 :: hadd

Ошибка 3, ошибка LNK2020: неразрешенный токен (06000004) мультиклассы. Класс 2:: add

Ошибка 4, ошибка LNK2020: неразрешенный токен (06000005) multiclasses.Class2 :: hadd

Можно ли каким-либо образом использовать библиотеку классовскомпилирован как статическая библиотека (.lib)?
Можно ли экспортировать классы в статическую библиотеку?Это в корне неправильно при попытке экспортировать классы в статической библиотеке?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...