Win32有exe与dll之间数据共享的机制吗?

fly4free 2013-10-15 09:27:18
我有一个需求:
我的exe通过一个 lib1.dll 内的接口创建一个对象 MyClass* objPtr1,
我还有一个ActiveX控件,也是使用同样方式创建上述类型的对象 MyClass* objPtr2

现在有一个场景,就是 ActiveX 被加载到 exe所在进程中,那么我想在ActiveX内有一个判断:
通过一个途径判断进程内某固定位置是否保存着exe创建的对象的指针,如果没有,那么创建,如果有那么使用exe创建的对象。(由于同属一个进程,那么只要有这个机制,这个指针就是有效的。)

...全文
248 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
fly4free 2013-10-23
  • 打赏
  • 举报
回复
引用 12 楼 qq648881240 的回复:
内存共享不行?
主要是还得二次建立,当初嫌麻烦。 不过整了几天发现与实际情况有矛盾,情况太复杂,不说了,结。
qq648881240 2013-10-17
  • 打赏
  • 举报
回复
内存共享不行?
fly4free 2013-10-15
  • 打赏
  • 举报
回复
引用 5 楼 akirya 的回复:
[quote=引用 3 楼 fly4free 的回复:] 具体是这样的,ActiveX是用于网页的 而我的 exe 有个 web浏览器控件,当浏览到那个页面才会加载(当然是exe程序控制的) so,无法调用自写接口传递对象指针。 ……或者说我不知道怎么传递
一个进程的话,转成一个整数传递过去。[/quote] 关键是我不知道用什么方式传过去,只有中间js联系着我的web控件(exe内)与 另一个activeX控件,不过这条路麻烦了。
  • 打赏
  • 举报
回复
引用 3 楼 fly4free 的回复:
具体是这样的,ActiveX是用于网页的 而我的 exe 有个 web浏览器控件,当浏览到那个页面才会加载(当然是exe程序控制的) so,无法调用自写接口传递对象指针。 ……或者说我不知道怎么传递
一个进程的话,转成一个整数传递过去。
fly4free 2013-10-15
  • 打赏
  • 举报
回复
引用 3 楼 fly4free 的回复:
... 而我的 exe 有个 web浏览器控件,当浏览到那个页面才会加载(当然是exe程序控制的) ..
程序控制浏览到那个页面
fly4free 2013-10-15
  • 打赏
  • 举报
回复
具体是这样的,ActiveX是用于网页的 而我的 exe 有个 web浏览器控件,当浏览到那个页面才会加载(当然是exe程序控制的) so,无法调用自写接口传递对象指针。 ……或者说我不知道怎么传递
oyljerry 2013-10-15
  • 打赏
  • 举报
回复
直接通过接口传递指针。ActiveX内部判断一下是否为空等
许文君 2013-10-15
  • 打赏
  • 举报
回复
由active加个接口类似于get_classptr,然后exe加载这个active控件的时候将objPtr1传入不就行了
fly4free 2013-10-15
  • 打赏
  • 举报
回复
引用 9 楼 xuddk727 的回复:
我觉得你需要的这种方式似乎太绕远了。 你可以直接在lib1.dll 中引出一条c接口 比如createmyclass,无论exe还是active都是通过这个函数得到你的MyClass指针而不是去new出来,这样,就演变成自己的dll的这条函数内去判断是否已经new过的问题了。
!!! 说实话,刚才一刹那确实这么想来着,看到实体的回复后,结合实际,才最终觉得确实可以这样
许文君 2013-10-15
  • 打赏
  • 举报
回复
或者你的myclass构造函数设为私有,直接来个getclass返回其静态指针也可以啊,你试试吧。
许文君 2013-10-15
  • 打赏
  • 举报
回复
我觉得你需要的这种方式似乎太绕远了。 你可以直接在lib1.dll 中引出一条c接口 比如createmyclass,无论exe还是active都是通过这个函数得到你的MyClass指针而不是去new出来,这样,就演变成自己的dll的这条函数内去判断是否已经new过的问题了。
fly4free 2013-10-15
  • 打赏
  • 举报
回复
引用 7 楼 xuddk727 的回复:
getmodulehandle得到进程句柄,有了进程句柄怎么找你说了算了吧,这行了吧
我在exe中可以把这个对象指针保存在一个全局变量中, 可那个 activex 如何知道 exe 的这个全局变量的位置呢?
许文君 2013-10-15
  • 打赏
  • 举报
回复
getmodulehandle得到进程句柄,有了进程句柄怎么找你说了算了吧,这行了吧

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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