Как использовать кружевной проект

Я новичок в C ++. Я хочу использовать lacewing-project.org в моем проекте на C ++. Я прочитал документацию о том, как его построить, и успешно сделал это, используя оба DLL - Release а также Static Library - Release конфигурации.

Теперь я не знаю, как использовать это в моем проекте и как настроить и настроить мой проект? Я следил этот урок, но застрял в середине из-за отсутствующих опций в последней Visual Studio. Я использую Visual C ++ Expression Ed., 2012 на Windows 8

Я погуглил и сделал следующее:

  • Добавил файл lib и файл lacewing.h в мой проект.
  • В Свойствах проекта Visual C ++, в папке Linker -> Input я добавил файл lib в качестве дополнительных зависимостей.

Я поместил dll в папку Windows \ System32. Нужно ли мне что-то делать с dll, кроме помещения его в папку win32?

Мой код от привет мир пример приведены в документации.

Когда я пытаюсь скомпилировать, я получаю:

1>------ Build started: Project: test, Configuration: Debug Win32 ------
1>  Source.cpp
1>Source.obj : error LNK2019: unresolved external symbol __imp__lw_version referenced in function "void __cdecl on_get(struct lacewing::_webserver *,struct lacewing::_webserver_request *)" (?on_get@@YAXPAU_webserver@lacewing@@PAU_webserver_request@2@@Z)
1>Source.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) void __cdecl lacewing::pump_delete(struct lacewing::_pump *)" (__imp_?pump_delete@lacewing@@YAXPAU_pump@1@@Z) referenced in function _main
1>Source.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: struct lacewing::_error * __thiscall lacewing::_eventpump::start_eventloop(void)" (__imp_?start_eventloop@_eventpump@lacewing@@QAEPAU_error@2@XZ) referenced in function _main
1>Source.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) struct lacewing::_eventpump * __cdecl lacewing::eventpump_new(void)" (__imp_?eventpump_new@lacewing@@YAPAU_eventpump@1@XZ) referenced in function _main
1>Source.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl lacewing::_stream::writef(char const *,...)" (__imp_?writef@_stream@lacewing@@QAAXPBDZZ) referenced in function "void __cdecl on_get(struct lacewing::_webserver *,struct lacewing::_webserver_request *)" (?on_get@@YAXPAU_webserver@lacewing@@PAU_webserver_request@2@@Z)
1>Source.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall lacewing::_webserver::host(long)" (__imp_?host@_webserver@lacewing@@QAEXJ@Z) referenced in function _main
1>Source.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall lacewing::_webserver::on_get(void (__cdecl*)(struct lacewing::_webserver *,struct lacewing::_webserver_request *))" (__imp_?on_get@_webserver@lacewing@@QAEXP6AXPAU12@PAU_webserver_request@2@@Z@Z) referenced in function _main
1>Source.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) struct lacewing::_webserver * __cdecl lacewing::webserver_new(struct lacewing::_pump *)" (__imp_?webserver_new@lacewing@@YAPAU_webserver@1@PAU_pump@1@@Z) referenced in function _main
1>Source.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) void __cdecl lacewing::webserver_delete(struct lacewing::_webserver *)" (__imp_?webserver_delete@lacewing@@YAXPAU_webserver@1@@Z) referenced in function _main
1>C:\Users\Jayarathina\Desktop\New folder (3)\test\Debug\test.exe : fatal error LNK1120: 9 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Пожалуйста помоги…

0

Решение

Чтобы связать статически с библиотекой, нужно определить lw_import, Если вы этого не сделаете, по умолчанию __declspec(dllimport):

#ifndef lw_import
#define lw_import __declspec (dllimport)
#endif

что заставляет компоновщик пытаться извлечь функции из DLL (что неверно при статической компоновке). Для этого вы можете добавить lw_import= к вашим определениям препроцессора в свойствах проекта, или #define это прежде, чем в том числе lacewing.h, а так:

#define lw_import
#include <lacewing.h>

Поскольку вы статически связываете библиотеку, вам также нужно будет связать любые библиотечные зависимости с вашим собственным проектом. Вы можете найти список в свойствах проекта liblacewing.vcproj само по себе, но по состоянию на 0.5.1 это ws2_32.lib, mswsock.lib, mpr.lib, secur32.lib а также crypt32.lib,

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]