Я использую 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)?
Можно ли экспортировать классы в статическую библиотеку?Это в корне неправильно при попытке экспортировать классы в статической библиотеке?