Форум программистов, компьютерный форум, киберфорум
Boost C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/30: Рейтинг темы: голосов - 30, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 22.09.2012
Сообщений: 9
1

Boost в Visual c++ Windows Forms App

18.01.2013, 20:00. Показов 5763. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В VC подключаю директории инклуда и линков буста для проекта. В консольном проекте буст работает, а вот в проекте Windows Forms App, когда подключаю его ( к примеру в stdafx.h #include <boost/asio.hpp> ) вылетает куча ошибок, вот дамп:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/*
1>------ Build started: Project: left1, Configuration: Debug Win32 ------
1>Build started 18.01.2013 17:51:10.
1>InitializeBuildStatus:
1>  Touching "Debug\left1.unsuccessfulbuild".
1>GenerateTargetFrameworkMonikerAttribute:
1>Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files.
1>ClCompile:
1>  All outputs are up-to-date.
1>  left1.cpp
1>  Please define _WIN32_WINNT or _WIN32_WINDOWS appropriately. For example:
1>  - add -D_WIN32_WINNT=0x0501 to the compiler command line; or
1>  - add _WIN32_WINNT=0x0501 to your project's Preprocessor Definitions.
1>  Assuming _WIN32_WINNT=0x0501 (i.e. Windows XP target).
1>C:\boost_1_52_0\boost/asio/detail/impl/win_thread.ipp(52): error C2664: 'QueueUserAPC' : cannot convert parameter 1 from 'void (__stdcall *)(ULONG_PTR)' to 'PAPCFUNC'
1>          Address of a function yields __clrcall calling convention in /clr:pure and /clr:safe; consider using __clrcall in target type
1>C:\boost_1_52_0\boost/asio/detail/impl/win_thread.ipp(82): error C2664: '_beginthreadex' : cannot convert parameter 3 from 'unsigned int (__stdcall *)(void *)' to 'unsigned int (__stdcall *)(void *)'
1>          Address of a function yields __clrcall calling convention in /clr:pure and /clr:safe; consider using __clrcall in target type
1>C:\boost_1_52_0\boost/asio/detail/win_thread.hpp(31): error C3641: 'boost::asio::detail::win_thread_function' : invalid calling convention '__stdcall ' for function compiled with /clr:pure or /clr:safe
1>C:\boost_1_52_0\boost/asio/detail/win_thread.hpp(36): error C3641: 'boost::asio::detail::apc_function' : invalid calling convention '__stdcall ' for function compiled with /clr:pure or /clr:safe
1>C:\boost_1_52_0\boost/asio/detail/win_fenced_block.hpp(43): error C3862: 'boost::asio::detail::win_fenced_block::win_fenced_block': cannot compile an unmanaged function with /clr:pure or /clr:safe
1>          Inline native assembly not supported in managed code
1>C:\boost_1_52_0\boost/asio/detail/win_fenced_block.hpp(43): error C3645: 'boost::asio::detail::win_fenced_block::win_fenced_block' : __clrcall cannot be used on functions compiled to native code
1>C:\boost_1_52_0\boost/asio/detail/win_fenced_block.hpp(62): error C3862: 'boost::asio::detail::win_fenced_block::~win_fenced_block': cannot compile an unmanaged function with /clr:pure or /clr:safe
1>          Inline native assembly not supported in managed code
1>C:\boost_1_52_0\boost/asio/detail/win_fenced_block.hpp(62): error C3645: 'boost::asio::detail::win_fenced_block::~win_fenced_block' : __clrcall cannot be used on functions compiled to native code
1>C:\boost_1_52_0\boost/detail/interlocked.hpp(99): warning C4164: '_InterlockedExchange' : intrinsic function not declared
1>C:\boost_1_52_0\boost/detail/interlocked.hpp(100): warning C4164: '_InterlockedExchangeAdd' : intrinsic function not declared
1>C:\boost_1_52_0\boost/smart_ptr/detail/spinlock_w32.hpp(62): error C3861: '_InterlockedExchange': identifier not found
1>C:\boost_1_52_0\boost/asio/detail/impl/signal_set_service.ipp(74): error C2039: 'signal' : is not a member of '`global namespace''
1>C:\boost_1_52_0\boost/asio/detail/impl/signal_set_service.ipp(74): error C3861: 'signal': identifier not found
1>C:\boost_1_52_0\boost/asio/detail/impl/signal_set_service.ipp(247): error C2039: 'signal' : is not a member of '`global namespace''
1>C:\boost_1_52_0\boost/asio/detail/impl/signal_set_service.ipp(247): error C3861: 'signal': identifier not found
1>C:\boost_1_52_0\boost/asio/detail/impl/signal_set_service.ipp(317): error C2039: 'signal' : is not a member of '`global namespace''
1>C:\boost_1_52_0\boost/asio/detail/impl/signal_set_service.ipp(317): error C3861: 'signal': identifier not found
1>C:\boost_1_52_0\boost/asio/detail/impl/signal_set_service.ipp(371): error C2039: 'signal' : is not a member of '`global namespace''
1>C:\boost_1_52_0\boost/asio/detail/impl/signal_set_service.ipp(371): error C3861: 'signal': identifier not found
1>C:\boost_1_52_0\boost/asio/detail/win_object_handle_service.hpp(157): error C3641: 'boost::asio::detail::win_object_handle_service::wait_callback' : invalid calling convention '__stdcall ' for function compiled with /clr:pure or /clr:safe
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:04.24
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
 
*/

пробовал добавить #define _WIN32_WINNT = 0x0501 в stdafx.h, пишет
boost/asio/detail/config.hpp(256): fatal error C1017: invalid integer constant expression

Windows7 x64, но когда собирал буст забыл указать что х64, и VC тоже для win32. может потому лезут ошибки?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2013, 20:00
Ответы с готовыми решениями:

Использование Boost в Windows Forms
Здравствуйте, возникла необходимость использовать библиотеки boost в windows forms. Скачал,...

Возможно ли подключить Microsoft App Center в приложение Windows Forms?
Возможно ли подключить Microsoft Visual Studio App Center (https://appcenter.ms/) в приложение...

Вылетает boost::regex в windows forms, в консоли всё нормально
работаю с формой, подключаю &lt;boost/regex.hpp&gt;. Компиляция проходит без ошибок, но когда нажимаю f5...

VS 2008, C#: 1 Error. Constructor on type 'App.App.Forms.FormBase' not found. в FormDerived [Design]
и это после того, как добавил в котструктор базовой формы параметр. теперь в design только ее и...

13
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
18.01.2013, 21:23 2
Цитата Сообщение от mYSTERYK Посмотреть сообщение
boost/asio/detail/config.hpp(256): fatal error C1017: invalid integer constant expression
windows.h нужно подключать после хедеров boost-а

Попробуйте в чистом консольном приложении...
0
0 / 0 / 0
Регистрация: 22.09.2012
Сообщений: 9
18.01.2013, 21:49  [ТС] 3
Windows.h не подключал, но попробовал подключить в чистом stdafx.h и полезли новые ошибки(буст не подключал)
1>------ Build started: Project: mAgent, Configuration: Debug Win32 ------
1>Build started 18.01.2013 19:32:47.
1>InitializeBuildStatus:
1> Creating "Debug\mAgent.unsuccessfulbuild" because "AlwaysCreate" was specified.
1>GenerateTargetFrameworkMonikerAttribute:
1>Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files.
1>ClCompile:
1> stdafx.cpp
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\servprov.h(96): error C2872: 'IServiceProvider' : ambiguous symbol
1> could be 'c:\program files (x86)\microsoft sdks\windows\v7.0a\include\servprov.h(53) : System::IServiceProvider IServiceProvider'
1> or 'c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.0\mscorlib.dll : System::IServiceProvider'
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\servprov.h(96): error C3699: '*' : cannot use this indirection on type 'IServiceProvider'
1> compiler replacing '*' with '^' to continue parsing
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\servprov.h(103): error C2371: 'IServiceProvider' : redefinition; different basic types
1> c:\program files (x86)\microsoft sdks\windows\v7.0a\include\servprov.h(53) : see declaration of 'IServiceProvider'
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\servprov.h(120): error C2872: 'IServiceProvider' : ambiguous symbol
1> could be 'c:\program files (x86)\microsoft sdks\windows\v7.0a\include\servprov.h(103) : IServiceProvider'
1> or 'c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.0\mscorlib.dll : System::IServiceProvider'
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\servprov.h(241): error C2872: 'IServiceProvider' : ambiguous symbol
1> could be 'c:\program files (x86)\microsoft sdks\windows\v7.0a\include\servprov.h(103) : IServiceProvider'
1> or 'c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.0\mscorlib.dll : System::IServiceProvider'
1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\servprov.h(251): error C2872: 'IServiceProvider' : ambiguous symbol
1> could be 'c:\program files (x86)\microsoft sdks\windows\v7.0a\include\servprov.h(103) : IServiceProvider'
1> or 'c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.0\mscorlib.dll : System::IServiceProvider'
1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\urlmon.h(6459): error C2872: 'IServiceProvider' : ambiguous symbol
1> could be 'c:\program files (x86)\microsoft sdks\windows\v7.0a\include\servprov.h(103) : IServiceProvider'
1> or 'c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.0\mscorlib.dll : System::IServiceProvider'
1>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\urlmon.h(6461): error C2872: 'IServiceProvider' : ambiguous symbol
1> could be 'c:\program files (x86)\microsoft sdks\windows\v7.0a\include\servprov.h(103) : IServiceProvider'
1> or 'c:\program files (x86)\reference assemblies\microsoft\framework\.netframework\v4.0\mscorlib.dll : System::IServiceProvider'
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:01.17
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Добавлено через 14 минут
Windows.h работает, просто его перед using namespace нужно ставить
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
18.01.2013, 21:51 4
В чистом консольном вообще не подключайте windows.h( и stdafx.h тоже нафиг выкиньте) .он конфликтует с boost/asio
0
0 / 0 / 0
Регистрация: 22.09.2012
Сообщений: 9
18.01.2013, 21:52  [ТС] 5
Я в чисто консольном не подключаю, у меня Windows Forms App проект, и там уже windows.h работает
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
18.01.2013, 21:54 6
Мда печалька... говорЮ попробуйте подключить boost в чистом консольном сначала...
0
0 / 0 / 0
Регистрация: 22.09.2012
Сообщений: 9
18.01.2013, 21:55  [ТС] 7
В начале поста было написано что в Консольном буст работает
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
18.01.2013, 21:59 8
Цитата Сообщение от mYSTERYK Посмотреть сообщение
В начале поста было написано что в Консольном буст работает
Где ? трижды перепрочел посты не заметил ...

Еще раз -
Цитата Сообщение от Avazart Посмотреть сообщение
windows.h нужно подключать после хедеров boost-а
0
23 / 23 / 3
Регистрация: 15.12.2012
Сообщений: 314
18.01.2013, 22:00 9
У меня с windows.h всегда буст здорово уживается. В чем там может быть конфликт?
Да, и увидел в верху какая разница в слэшах, например /MyProject или \MyProject
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
18.01.2013, 22:02 10
Цитата Сообщение от vbloodv Посмотреть сообщение
В чем там может быть конфликт?
В том что boost/asio уже использует хедеры (может что-то для winsoks) Windows, но как-то по своему...
1
0 / 0 / 0
Регистрация: 22.09.2012
Сообщений: 9
18.01.2013, 22:09  [ТС] 11
Цитата Сообщение от mYSTERYK Посмотреть сообщение
В VC подключаю директории инклуда и линков буста для проекта. В консольном проекте буст работает, а вот в проекте Windows Forms App, когда подключаю его ( к примеру в stdafx.h #include <boost/asio.hpp> ) вылетает куча ошибок, вот дамп:

вот где писал

Мне Windows.h не нужно подключать, он не не нужен просто. Мне ошибки выдает когда чисто подключал asio.hpp
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
18.01.2013, 22:32 12
Попробовал у себя
Код
Ошибка	13	error C2039: signal: не является членом "`global namespace'"	C:\Program Files\boost VC++\boost_1_50\boost\asio\detail\impl\signal_set_service.ipp	74	1	WinForms
В общем чего-то не хватает...
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
19.01.2013, 00:45 13
Зачем тащить boost в Windows Forms? C++/CLI имеет вполне достаточно фич.
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
19.01.2013, 01:20 14
Цитата Сообщение от ForEveR Посмотреть сообщение
Зачем тащить boost в Windows Forms? C++/CLI имеет вполне достаточно фич.
Ну это другой вопрос...
Хотя возможно автор собирается использовать CLI только как окна... а логику чисто С++ную
0
19.01.2013, 01:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.01.2013, 01:20
Помогаю со студенческими работами здесь

Windows Forms в Visual Studio, C++
Доброго времени суток, уважаемые программисты! Требуется создать графический интерфейс для...

Visual Studio Windows Forms C++
Помогите пожалуйста. Проблема номер 1: При запуске Windows Forms возникает такая ошибка ...

Работа с Excel в Visual C++ -> Windows Forms
Как создать/открыть Excel-файл из Visual C++ -&gt; Windows Forms и с ним работать?

Visual Studio 2010 Windows Forms OpenFileDialog
Здравствуйте! Создаю стандартное Windows Forms приложение в Visual Studio 2010. На форму кидаю,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru