CE中com组件和进程通信实现??在线等,高分

qq277541717 2010-01-20 09:26:55
在CE中
当应用程序A调用了COM组件更新数据库内容时,则需要通知应用程序B同步数据库中的内容( 通知内容是带具体数据,且都是无窗体程序); 应该如何实现?? 怎样才能效率比较高??
...全文
76 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wolfmvp 2010-01-21
  • 打赏
  • 举报
回复
[Quote=引用楼主 qq277541717 的回复:]
在CE中
当应用程序A调用了COM组件更新数据库内容时,则需要通知应用程序B同步数据库中的内容( 通知内容是带具体数据,且都是无窗体程序); 应该如何实现?? 怎样才能效率比较高??
[/Quote]问题定义的这么明确,还有什么搞不定的呀?呵呵…不是楼主不会做,是缺乏做的勇气,不自信呀…
qq277541717 2010-01-20
  • 打赏
  • 举报
回复
内存映射文件就不用考虑了.我把它用于单向的数据共享(一个读,一个写),
DWORD mmsg = RegisterWindowMessage(_T(MSGTEST));
if (!mmsg)
{
//MessageBox(_T("创建失败!"));
}

LPVOID pl= NULL;//传递结构体
WPARAM par = (UINT)pl;
::PostMessage(HWND_BROADCAST, mmsg, par, 0);

请问接收部分怎么写???
qq277541717 2010-01-20
  • 打赏
  • 举报
回复
先谢过
4楼.资源互斥不考虑,因为我的操作中不会出现的.能不能说说那四种方式.有没有什么参考的资源.谢过
5楼.EVENT有测试过了,可以使用,但不能带参数传递.
dxw777 2010-01-20
  • 打赏
  • 举报
回复
PostMessage可以跨进程吗? 我只在不同线程中用过
我觉得可以用命名的Event
CreateEvent(NULL,FALSE,FALSE,TEXT("名字"));
另一个进程中
WaitForSingleObject();
sailorlyq 2010-01-20
  • 打赏
  • 举报
回复
进程间通信只能用那四种方式。回调函数好像也只能是在同一个进程的。两个进程同时操作一个数据库是有风险的,涉及到临界资源的问题。具体的只有楼主慢慢分析了。网上相关资料应该比较多。
qq277541717 2010-01-20
  • 打赏
  • 举报
回复
还得顶一下

是不是可以采用回调方式呢,当进程A更新了数据库时回调进程A的更新函数,但不知道如何去实现~! "_"
qq277541717 2010-01-20
  • 打赏
  • 举报
回复
进程通信可以用 PostMessage
参数hWnd:其窗口程序接收消息的窗口的句柄。可取有特定含义的两个值:
HWND.BROADCAST:消息被寄送到系统的所有顶层窗口,包括无效或不可见的非自身拥有的
窗口、被覆盖的窗口和弹出式窗口。消息不被寄送到子窗口。
NULL:此函数的操作和调用参数dwThread设置为当前线程的标识符PostThreadMessage函数一样。

但感觉此方法操作不方便,请各位大侠给些思路.谢过
kyzf 2010-01-20
  • 打赏
  • 举报
回复
帮顶下。

MARK.
qq277541717 2010-01-20
  • 打赏
  • 举报
回复

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧