Не удается заставить DLL работать на Visual Studio - PullRequest
2 голосов
/ 06 февраля 2010

Я следовал руководству от msdn , и оно просто не работает.

Первая проблема у меня заключается в том, что иногда .dll и .lib не создаются. Вместо этого я получаю только .objs. Всякий раз, когда я собираю проект .dll, появляется всплывающее окно с просьбой «пожалуйста, укажите имя исполняемого файла, который будет использоваться для сеанса отладки». Мне сказали изменить проект запуска на проект с основной функцией, но затем .dll не был собран. Это происходит как с использованием конфигурации VS по умолчанию, так и путем простого добавления нескольких строк или следуя пошаговому руководству в msdn.

Когда построены .dll и .obj - Бог знает как - я не могу их распознать. Я попытался поместить их и .h в папку проекта, но затем я получаю сообщение об ошибке, что функция .dll не определена. Следуя ссылке msdn, в какой-то момент написано:

  1. Чтобы использовать математические подпрограммы, созданные в библиотеке динамических ссылок, Вы должны ссылаться на библиотеку. Сделать это, выберите Ссылки ... из Меню проекта. На страницах недвижимости диалоговое окно, разверните Общие Свойства узла, выберите Ссылки, и затем выберите Добавить новую ссылку ... кнопка. Для получения дополнительной информации о Ссылки… диалоговое окно, см. Framework и ссылки, общие свойства, Диалог страниц свойств Box.

  2. Отображается диалоговое окно Добавить ссылку. В этом диалоговом окне перечислены все библиотеки, на которые вы можете ссылаться. На вкладке Project перечислены все проекты в текущее решение и любые библиотеки они содержат. На вкладке "Проекты" выберите MathFuncsDll.

Если я зайду в Project> Test Properties> Common Properties, я найду только подпункт «Framework и References». Там нет "Ссылки ..." Есть кнопка "Добавить новую ссылку ...", но это не позволяет мне ничего добавлять. Другая кнопка «Добавить путь ...» не имеет никакого значения, даже если я установил ее в каталоге с файлами. Следующие шаги также не работают.

Я также пытался добавить имя файла на компоновщике, но затем он говорит, что не может найти файл .obj.

Понятия не имею, куда идти отсюда. Я застрял на этом в течение нескольких часов, и нигде нет решения для этого.

Есть ли где-нибудь пошаговое руководство, которое действительно работает для VS2008?

Ответы [ 2 ]

1 голос
/ 06 февраля 2010

Во-первых, ваше описание смешивает управляемые (.net) вещи с обычными вещами на С ++. Я предполагаю, что вы делаете нормальные вещи с ++.

Являетесь ли вы владельцем (я имею в виду источник; автор) и DLL, и вызывающей программы? Если это так, у вас должно быть 2 проекта VS, один для DLL и один для программы. Вы должны установить программу в качестве запуска проекта. Это заставит отладчик вести себя корректно

Для правильной сборки необходимо, чтобы программа на c ++ зависела от проекта dll. Есть проект | Диалог проекта зависит от вас, установите программный проект в зависимости от проекта DLL

Если у вас есть только DLL, вам нужно перейти к свойствам проекта | отладьте и скажите, какой двоичный файл запустить для вызова вашей DLL.

Если это управляется с ++, то это совсем другое дело

0 голосов
/ 06 февраля 2010

Попробуйте указать Зависимости проекта между вашим проектом DLL и проектом приложения, использующего DLL.

Настройки References предназначены для проектов .NET.

...