В частности, я хочу использовать Очередь сообщений точка-точка, но, поскольку я все еще использую устаревшие коды в 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)
для их компиляции.