Подтвердить что ты не робот

Повысьте потоки с помощью CLR

Использование библиотек Visual Studio 2008 и Boost 1.46.1 Я хочу скомпилировать и связать следующее с флагом /CLR:

#include <boost/thread/thread.hpp>
void run() {}
int main(int argc, char *argv[])
{
    boost::thread t(run);   
}

Первая ошибка связана с объявленной вперед dummy-struct в boost:: thread. Этот пост работает вокруг этого, объявляя:

namespace boost {
    struct thread::dummy {};
}

Конечно, теперь я могу скомпилировать, но затем я получаю предупреждение компоновщика

Предупреждение 1 предупреждение LNK4248: неразрешенный токен typeref (0100001F) для 'boost.detail.win32._SECURITY_ATTRIBUTES'; изображение не может работать

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

Приложение не смогло начать правильно (0xc000007b).

Ни одно из предложений в упомянутом выше форуме не работает для меня. Я создал статическую версию библиотеки Boost Threads, и она отлично работает без флага /CLR. Отладка/выпуск не имеет значения. Я работаю под 32-разрядным Win7.

Любые подсказки?

4b9b3361

Ответ 1

Я уже столкнулся с этой проблемой, я не помню, где я получил это, но одно обходное объявление объявляет "boost.detail.win32._SECURITY_ATTRIBUTES" после включения всех заголовков форматирования.

namespace boost { 
    namespace detail { 
        namespace win32 { 
            struct _SECURITY_ATTRIBUTES: public ::_SECURITY_ATTRIBUTES {}; 
        };
    };
}; 

Удалите пространства имен, если вы хотите, чтобы все его видели.