библиотека boost в приложении Windows Mobile 6.x

#c #boost #windows-mobile

#c #boost #windows-mobile

Вопрос:

Кто-нибудь смог использовать Boost в приложении Windows Mobile 6.x? Более конкретно, я хочу использовать Thunk32 для создания обратного вызова нестатической функции-члена. Но в нем используются некоторые сложные методы приведения к ускорению, которые не будут компилироваться в мобильных проектах.

Ответ №1:

Windows Mobile имеет искаженную реализацию стандартной библиотеки. Вам придется использовать более полную версию. Я лично использую STLPort. Используя это, большая часть Boost будет работать нормально. Однако у меня все еще возникают проблемы с использованием некоторых библиотек, которые не предназначены только для заголовков.

Кроме того, библиотеку Thunk32, на которую вы указали, вероятно, потребуется модифицировать для ARM. Используемый ассемблерный код является x86.

-PaulH

Комментарии:

1. Спасибо. Вы правы. Я даже не думал об инструкциях x86 по сравнению с ARM. Знаете ли вы какой-либо другой способ создания обратного вызова для нестатической функции-члена?

2. функции Windows, которые принимают обратный вызов, обычно позволяют передавать пользовательский параметр. Попробуйте передать this . Я думаю, вы могли бы заставить эту библиотеку Thunk32 работать, если бы изменили сборку. К сожалению, я не специалист по сборке.

3. К сожалению, некоторые вызовы Windows API не работают таким образом. например, SetWindowsHookEx не принимает никаких параметров, которые я могу использовать, и не передает никакого значения своей функции обратного вызова. Как я и просил в своем первоначальном сообщении, Thunk 32 использует Boost для выполнения какого-то кастинга, который мне с трудом удается понять.

4. @Sam, есть веская причина SetWindowsHookEx , по которой этого не делается. Обратный вызов вызывается не вашим процессом, а gwes.exe . Даже если бы вы могли использовать ее, вы бы имели дело с разными пространствами памяти. У меня есть статья code project на эту тему, если вам интересно: codeproject.com/KB/windows/WM-Input-Hooks.aspx