Boost.asio в проекте Visual C++ Form
Я успешно реализовал сетевое приложение в визуальном проекте CLR, используя boost.asio. но когда я попытался использовать тот же код в проекте формы Windows с общей "Language Runtime Support (/clr)", которая рекомендуется boost.asio, она не работает Error 15 error LNK2022: metadata operation failed (8013119F) : A TypeRef exists which should, but does not, have a corresponding TypeDef: (dummy): (0x01000019)
,
Мой вопрос заключается в том, как я могу интегрировать мои сетевые коды, сделанные с помощью boost.asio в проект формы Windows. Сейчас я попытаюсь скомпилировать все реализации boost.asio как "No Common Language Runtime support" в другом проекте в виде динамической библиотеки и связать его с проектом формы Windows.
Между тем, если кто-нибудь из вас уже попробовал, пожалуйста, помогите мне сэкономить время.
2 ответа
Кажется, вы используете boost::thread. Согласно этому сообщению об ошибке, этот вопрос и мой личный опыт, boost:: thread не будут работать с проектами C++/CLR при статическом связывании. Вы должны поместить их в неуправляемую библиотеку и использовать эту библиотеку, как вы сами сказали.
@ Мухаммед, наверное, я понял это. Мне нужно вручную добавить форму в пустой проект, а затем включить в него boost/asio. Загрузка boost/asio в проекте Windows Form может не работать из-за предварительно скомпилированных заголовков. Теперь я должен выяснить проблему повышения потока. Как вы сказали, я попробую предложенные вами методы и сообщу вам.