Как часть изучения C ++, я написал простую библиотеку классов + приложение, которое ссылается на нее.Все сборки, за исключением того, что библиотека классов не создает файл .lib, в результате чего приложение выдает «LINK: фатальная ошибка LNK1104: не удается открыть файл».Это кажется очень разумным;очевидно, если нет необходимого файла, возникает ошибка, и это фатально.(Примечание: у меня еще нет книги)
Итак, я начал искать причины, по которым файл .lib не может быть сгенерирован.Кстати, моя поисковая фу довольно слабая.Все, что я нашел, было то, что, если бы в библиотеке не было тегов __declspec (dllexport), она не экспортировала бы .lib.
Теперь я опубликую содержимое заголовка и .cpp библиотеки классовпростой «Console» класс с одним методом «Write (std :: string)»).
Заголовок:
// Extensions.h
#pragma once
#include "stdafx.h"
namespace Extensions {
__declspec(dllexport) class Console
{
public:
__declspec(dllexport) static void Write(std::string text);
};
}
Я не уверен, нужно ли мне отмечать функцию, когда япометил класс, но я могу проверить, когда он работает.
И файл .cpp:
// This is the main DLL file.
#include "stdafx.h"
// #include "Console.h"
namespace Extensions {
void Console::Write(std::string text)
{
std::cout << text.c_str();
}
}
Я проверил, и он настроен на создание библиотеки динамических ссылок.
Спасибо.