Как использовать WINAPI из более нового SDK, но все еще использовать старый SDK в WindowsMobile - PullRequest
0 голосов
/ 19 апреля 2010

В частности, я хочу использовать Очередь сообщений точка-точка, но, поскольку я все еще использую устаревшие коды в eVC ++ 4 и поддерживает только PocketPC 2003SE SDK, я не могу найти CreateMsgQueue и друзей в заголовках (порт до новой версии VisualStudio все еще находится в стадии разработки)

Я использую очередь сообщений для IPC с приложениями, разработанными с использованием WM-6.5-DTK (VS2005).

Обновление:
Я использую следующий код (взятый из msgqueue.h) для хранения указателей функций и загрузки CoreDLL.dll, используя GetProcAddress() и LoadLibrary() соответственно.

HANDLE /*WINAPI*/ (*CreateMsgQueue)(LPCWSTR lpName, LPMSGQUEUEOPTIONS lpOptions);
HANDLE /*WINAPI*/ (*OpenMsgQueue)(HANDLE hSrcProc, HANDLE hMsgQ
                  , LPMSGQUEUEOPTIONS lpOptions);
BOOL /*WINAPI*/ (*ReadMsgQueue)(HANDLE hMsgQ,
     /*__out_bcount(cbBufferSize)*/ LPVOID lpBuffer, DWORD cbBufferSize,
                LPDWORD lpNumberOfBytesRead, DWORD dwTimeout, DWORD *pdwFlags);
BOOL /*WINAPI*/ (*WriteMsgQueue)(HANDLE hMsgQ, LPVOID lpBuffer, DWORD cbDataSize,
                DWORD dwTimeout, DWORD dwFlags);
BOOL /*WINAPI*/ (*GetMsgQueueInfo)(HANDLE hMsgQ, LPMSGQUEUEINFO lpInfo);

BOOL /*WINAPI*/ (*CloseMsgQueue)(HANDLE hMsgQ);

С вышеприведенным кодом все в порядке, так как мне нужно закомментировать WINAPI и __out_bcount(cbBufferSize) для их компиляции.

1 Ответ

0 голосов
/ 21 апреля 2010

Как указывает ctacke , он фактически доступен в PPC2003 SDK. Требование в MSDN неверно.

Кстати, приведенный выше подход работает нормально даже после комментирования WINAPI и __out_bcount(cbBufferSize)

...