具体来说,我想使用点对点消息队列,但因为我仍然在eVC ++ 4中使用遗留代码,它只支持PocketPC 2003SE SDK,我在标题中找不到CreateMsgQueue
和朋友( VisualStudio的新端口仍在进行中。
我使用Message Queue与使用WM-6.5-DTK(VS2005)开发的应用程序进行IPC。
更新
我使用以下代码(取自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)
才能编译它们。
答案 0 :(得分:0)
正如ctacke所指出的,它实际上可以在PPC2003 SDK上获得。 MSDN中的要求是错误的。
顺便说一下,即使在评论WINAPI
和__out_bcount(cbBufferSize)
后,上述方法似乎也能正常工作