Веб-браузер Visual C # (2015) не отображает некоторые шрифты [дубликат]

Объявлено, но не определено переменная или функция.

Типичным объявлением переменной является

extern int x;

. Поскольку это только объявление, требуется одно определение. Соответствующим определением будет:

int x;

Например, следующее генерирует ошибку:

extern int x;
int main()
{
    x = 0;
}
//int x; // uncomment this line for successful definition

Аналогичные замечания относятся к функциям. Объявление функции без ее определения приводит к ошибке:

void foo(); // declaration only
int main()
{
   foo();
}
//void foo() {} //uncomment this line for successful definition

Будьте осторожны, чтобы выполняемая вами функция точно соответствовала той, которую вы объявили. Например, у вас могут быть несогласованные cv-квалификаторы:

void foo(int& x);
int main()
{
   int x;
   foo(x);
}
void foo(const int& x) {} //different function, doesn't provide a definition
                          //for void foo(int& x)

Другие примеры несоответствий включают

  • Функция / переменная, объявленная в одном пространстве имен, определенное в другом.
  • Функция / переменная, объявленная как член класса, определяемая как глобальная (или наоборот).
  • Тип возвращаемого значения функции, номер и типы параметров и соглашение о вызове не совсем точно согласуются.

Сообщение об ошибке из компилятора часто дает вам полное объявление переменной или функции, которая была объявлена, но не определена. Сравните его с определением, которое вы указали. Убедитесь, что каждая деталь соответствует.

76
задан JeromeJ 4 November 2013 в 02:03
поделиться

6 ответов

Все изменилось, так как этот вопрос изначально был задан и ответил. Проделана большая работа по внедрению кросс-браузерного шрифта для основного текста для работы с использованием встраивания @ font-face.

Пол Ирландский собрал Пуленепробиваемый @ font-face синтаксис , объединяющий попытки нескольких других людей. Если вы действительно просматриваете всю статью (а не только сверху), она позволяет одному оператору @ font-face охватывать IE, Firefox, Safari, Opera, Chrome и, возможно, другие. В основном это может распространять OTF, EOT, SVG и WOFF способами, которые ничего не сломают.

Снято с его статьи:

@font-face {
  font-family: 'Graublau Web';
  src: url('GraublauWeb.eot');
  src: local('Graublau Web Regular'), local('Graublau Web'),
    url("GraublauWeb.woff") format("woff"),
    url("GraublauWeb.otf") format("opentype"),
    url("GraublauWeb.svg#grablau") format("svg");
}

Работая с этой базы, Font Squirrel собрал множество полезных инструментов, в том числе @ font-face Generator , который позволяет загружать файлы TTF или OTF и получать файлы с автоматическим преобразованием шрифтов для других типов, наряду с предварительно построенным CSS и демонстрационной HTML-страницей. Font Squirrel также имеет Сотни наборов @ font-face .

Soma Design также собрал FontFriend Bookmarklet , который переопределяет шрифты на странице на летать, чтобы вы могли попробовать. Он включает поддержку drag-and-drop @ font-face в FireFox 3.6 +.

Совсем недавно Google начал предоставлять веб-шрифты Google , ассортимент шрифтов, доступных в лицензию с открытым исходным кодом и поданную с серверов Google.

Ограничения лицензии

Наконец, WebFonts.info собрал хороший список wiki'd из Шрифтов, доступных для @ font- встраивание лица на основе лицензий. Он не претендует на исчерпывающий список, но шрифты на нем должны быть доступны (возможно, с такими условиями, как атрибуция в файле CSS) для встраивания / связывания. Важно ознакомиться с лицензиями, потому что есть некоторые ограничения, которые не выдвигаются явно на загрузку шрифтов.

127
ответ дан fencepost 28 August 2018 в 04:09
поделиться

Попробуйте Facetype.js , вы конвертируете свой .TTF-шрифт в файл Javascript. Полный SEO-совместимый, поддерживает FF, IE6 и Safari и грамотно деградирует в других браузерах.

9
ответ дан Ajeet Ganga 28 August 2018 в 04:09
поделиться
2
ответ дан Community 28 August 2018 в 04:09
поделиться

И это маловероятно - EOT - довольно строгий формат, который поддерживается только IE. Оба Safari 3.1 и Firefox 3.1 (ну текущая альфа-версия) и, возможно, Opera 9.6 поддерживают встраивание шрифта типа true (ttf), и по крайней мере Safari поддерживает шрифты SVG через один и тот же механизм. В списке было хорошее обсуждение этого вопроса назад .

4
ответ дан olliej 28 August 2018 в 04:09
поделиться

Проверьте Typekit , коммерческий вариант (у них также есть бесплатный пакет).

Он использует разные методы в зависимости от того, какой браузер используется (формат @font-face vs. EOT), и они также заботятся обо всех проблемах с лицензированием шрифтов. Он поддерживает все до IE6.

Вот еще информация о том, как работает Typekit:

3
ответ дан philfreo 28 August 2018 в 04:09
поделиться

Нет, нет подходящего решения для типа тела, если только вы не готовы обслуживать только тех, у кого есть браузеры с кратковременным доступом.

Microsoft имеет WEFT , их собственная проприетарная технология встраивания шрифтов, но я не слышал об этом в течение многих лет, и я не знаю никого, кто ее использует.

Я получаю с помощью sIFR для типа отображения (заголовки, заголовки блога сообщения и т. д.) и использование одного из менее изношенных веб-безопасных шрифтов для типа тела (например, Trebuchet MS). Если вам скучно со всеми веб-безопасными шрифтами, вы, вероятно, определяете термин слишком узко - посмотрите на эту матрицу фондовых шрифтов , которые поставляются с основными ОС и, скорее всего, вы сможете чтобы найти каскад шрифтов, который поймает почти всех веб-пользователей.

Например: font-family: "Lucida Grande", "Verdana", sans-serif - общий каскад шрифтов; OS X поставляется с Lucida Grande, но те, у кого есть Windows, получат Verdana, веб-безопасный шрифт с буквами такого же размера и формы, что и Lucida Grande. Пользователи Linux также получат Verdana, если они установили пакет веб-безопасных шрифтов, который существует в большинстве менеджеров пакетов дистрибутивов, иначе они вернутся к обычным sans-serif.

6
ответ дан savetheclocktower 28 August 2018 в 04:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: