Изображение Base64 не отображает [дубликат]

Предположим, у вас есть большой проект, написанный на c ++, который содержит тысячу файлов .cpp и тысячу файлов .h. И давайте предположим, что проект также зависит от десяти статических библиотек. Скажем, мы работаем над Windows, и мы строим наш проект в Visual Studio 20xx. Когда вы нажимаете Ctrl + F7 Visual Studio, чтобы начать компиляцию всего решения (предположим, что у нас есть только один проект в решении)

В чем смысл компиляции?

  • Visual Studio выполните поиск в файле .vcxproj и начните компилировать каждый файл с расширением .cpp. Порядок компиляции не определен. Поэтому вы не должны предполагать, что файл main.cpp скомпилирован сначала
  • . Если файлы .cpp зависят от дополнительных файлов .h, чтобы найти символы, которые могут или не могут быть определены в файл .cpp
  • Если существует один .cpp-файл, в котором компилятор не смог найти один символ, ошибка времени компилятора вызывает сообщение Символ x не может быть найден
  • Для каждого файла с расширением .cpp создается объектный файл .o, а также Visual Studio записывает вывод в файл с именем ProjectName.Cpp.Clean.txt , который содержит все объектные файлы, которые должны обрабатывается компоновщиком.

Второй этап компиляции выполняется Linker.Linker должен объединить весь объектный файл и построить окончательно вывод (который может быть исполняемым или библиотекой)

Шаги по связыванию проекта

  • Разберите все объектные файлы и найдите определение, которое было объявлено только в заголовках (например: Код одного метода класса, как указано в p повторные ответы или событие инициализация статической переменной, которая является членом внутри класса)
  • Если один символ не может быть найден в объектных файлах, он также выполняется в дополнительных библиотеках. Для добавления новой библиотеки в project Свойства конфигурации -> Каталоги VC ++ -> Библиотечные каталоги, и здесь вы указали дополнительную папку для поиска библиотек и Свойства конфигурации -> Linker -> Input для указания имени библиотеки. -Если линкер не смог найти символ, который вы пишете в одном .cpp, он вызывает ошибку времени компоновщика, которая может звучать как error LNK2001: unresolved external symbol "void __cdecl foo(void)" (?foo@@YAXXZ)

Наблюдение

  1. После того, как Linker найдет один символ, он не ищет в других библиотеках для него
  2. Порядок ссылок на библиотеки имеет значение.
  3. Если Linker находит внешний символ в одной статической библиотеке, он включает в себя символ на выходе проекта. Однако, если библиотека является общей (динамической), он не включает в себя код (символы) на выходе, но Run-Time могут возникнуть сбои

Как решить эту ошибку

Ошибка времени компилятора:

  • Убедитесь, что вы правильно выполнили синтаксический проект c ++.

Ошибка времени компоновщика

  • Определите все символы, которые вы объявляете в ваших файлах заголовков.
  • Используйте #pragma once, чтобы компилятор не включал один заголовок если он уже был включен в текущий .cpp, который скомпилирован
  • Убедитесь, что ваш exter nal library не содержит символов, которые могут вступать в конфликт с другими символами, которые вы определили в ваших файлах заголовков.
  • Когда вы используете шаблон, чтобы убедиться, что вы включаете определение каждой функции шаблона в файл заголовка для разрешения компилятор для создания соответствующего кода для любых экземпляров.
66
задан Mukesh Sharma 14 November 2013 в 16:45
поделиться

4 ответа

Вы близки, вы хотите использовать @Html.Raw(str)

@Html.Encode, принимает строки и гарантирует правильную обработку всех специальных символов. К ним относятся такие символы, как пробелы.

122
ответ дан Jared 23 August 2018 в 17:08
поделиться

вы можете использовать @Html.Raw(str)

Подробнее MSDN для более

Возвращает разметку, которая не закодирована в HTML.

Этот метод обертывает разметку HTML, используя класс IHtmlString, который отображает unencoded HTML.

6
ответ дан AthibaN 23 August 2018 в 17:08
поделиться

Вместо этого вы должны использовать IHtmlString:

IHtmlString str = new HtmlString("<a href="/Home/Profile/seeker">seeker</a> has applied to <a href="/Jobs/Details/9">Job</a> floated by you.</br>");

Всякий раз, когда у вас есть свойства модели или переменные, которые должны содержать HTML, я считаю, что это, как правило, более эффективная практика. Прежде всего, это немного чище. Например:

@Html.Raw(str)

По сравнению с:

@str

Кроме того, я также считаю, что это немного безопаснее, чем использование @Html.Raw(), поскольку проблема заключается в том, HTML хранится в вашем контроллере. В среде, где у вас есть интерфейсные и back-end разработчики, ваши сторонние разработчики могут быть более точно совместимы с тем, какие данные могут содержать значения HTML, тем самым сохраняя эту проблему во внутреннем (контроллере).

Обычно я стараюсь избегать использования Html.Raw(), когда это возможно.

Еще одна вещь, которую стоит отметить, я не уверен, где вы назначаете str, но несколько вещей, которые касаются мне, как вы можете это реализовать.

Во-первых, это должно быть сделано в контроллере, независимо от вашего решения (IHtmlString или Html.Raw). Вы должны избегать такой логики, как это в своем представлении, поскольку она на самом деле не принадлежит.

Кроме того, вы должны использовать свой ViewModel для получения значений для вашего представления (и снова, в идеале, используя IHtmlString как тип свойства). Увидеть что-то вроде @Html.Encode(str) немного относительно, если вы не делаете этого просто для упрощения своего примера.

28
ответ дан Jerad Rose 23 August 2018 в 17:08
поделиться

У меня была аналогичная проблема с полями ввода HTML в MVC. В веб-страничке показано только первое ключевое слово поля. Пример: поле ввода: «Быстрая коричневая лиса» Отображаемое значение: «The [

]. Разрешение заключалось в том, чтобы преобразовать переменную в кавычки в оператор значения следующим образом:

<input class="ParmInput" type="text" id="respondingRangerUnit" name="respondingRangerUnit"
       onchange="validateInteger(this.value)" value="@ViewBag.respondingRangerUnit">
0
ответ дан Moes 23 August 2018 в 17:08
поделиться
Другие вопросы по тегам:

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