Ошибка ссылки на файл заголовка для создания приложения для ссылки на DLL - PullRequest
0 голосов
/ 20 февраля 2012

Я пытался выполнить пошаговое руководство для Microsoft Visual Studio, пошаговое руководство: Создание и использование библиотеки динамических ссылок , поскольку я новичок.

Однако я продолжаю получать ошибки, которые мне трудно понять и решить.

Прежде всего, он говорил, что произошла ошибка:

предупреждение C4627: «#include»: пропускается при поиске использования скомпилированного заголовка 1> Добавить директиву в 'StdAfx.h' или пересобрать предварительно скомпилированный заголовок

Итак, я провел онлайн-поиск, и оказалось, что я должен добавить в строку:

#include "StdAfx.h"

в файл .cpp, MyExecRefsDll.cpp, который я сделал, в верхней части кода.

Затем возникла ошибка:

фатальная ошибка C1083: не удается открыть включаемый файл: 'MathFuncsDll.h': такого файла или каталога нет

Я включил ссылку на этот заголовочный файл, который я и хочу использовать. Я вижу эту ссылку под: Страницы свойств MyExecRefsDll \ свойства конфигурации \ c / c ++ \ General, затем рядом с дополнительными включаемыми каталогами, которые у меня есть, C: .. и т.д .. \ DynamicLibrary \ MathFuncsDll \ MathFuncsDll.h

Я читал об отключении с использованием предварительно скомпилированных заголовков. Это то, что мне нужно сделать, но я не уверен, как?

Я также читал кое-что об использовании .lib вместо .dll для ссылки на библиотеку динамических ссылок. Я попробовал это, изменив ссылку на DLL под: Страницы свойств MyExecRefsDll \ свойства конфигурации \ Отладка, рядом с набранной мной средой, PATH = C: \ Users ... и т.д ... \ DynamicLibrary \ Debug \ MathFuncsDll.dll Вместо этого я попытался изменить конец имени файла на .lib, но ничего не изменилось, ошибка все еще заключалась в проблеме с поиском файла MathFuncsDll.h.

Кто-нибудь может подсказать, как заставить файл заголовка работать, чтобы я мог успешно построить решение? Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 24 февраля 2012

Visual Studio отображает эту ошибку только в том случае, если не удается найти файл заголовка. Чтобы решить это, вы должны проверить настройки проекта. В своем вопросе вы ссылаетесь на то, что «у меня есть: C: .. etc .. \ DynamicLibrary \ MathFuncsDll \ MathFuncsDll.h», где в каталогах Additional Include у вас должно быть только имя каталога, например «C: .. etc». .. \ DynamicLibrary \ MathFuncsDll \». Убедитесь, что файл действительно есть, а также дважды проверьте, что вы редактируете настройки проекта, связанные с текущей конфигурацией сборки, т. Е. Если вы собираете Debug | Win32, вам следует изменить там дополнительные каталоги включения.

0 голосов
/ 16 августа 2012

Существует очень простое решение этой проблемы.

В Visual Studio 2010 в разделе

Project->Properties->Configuration Properties->C/C++->Precompiled Headers

Установите для атрибута «Предварительно скомпилированный заголовок» значение «Не использовать предварительно скомпилированные заголовки»,"следуйте инструкциям, перечисленным, и демо-версия должна быть построена без ошибок.

0 голосов
/ 11 июля 2012

У меня была точно такая же проблема.Я считаю, что в VisualStudio 10 есть ошибка.

Вот хлопотный шаг из пошагового руководства:

Чтобы сослаться на файлы заголовков библиотеки динамических ссылок, необходимо изменитьпуть к каталогамДля этого в диалоговом окне «Страницы свойств» разверните узел «Свойства конфигурации», затем узел C / C ++ и выберите «Общие».В поле «Дополнительные каталоги включения» введите путь к местоположению файла заголовка MathFuncsDll.h.

Здесь Visual Studio предоставит вам кнопку «Обзор», чтобы вы могли перейти к нужному каталогу.и выберите его.Выполнение этого приведет к вставке всего пути в Additional Include Directories.

Однако это все равно не работает для меня.

Единственный способ, которым я мог заставить его скомпилировать, был ввести относительныйпуть:

.. \ .. \ MathFuncsDll \ MathFuncsDll \

...