我的exe通过一个 lib1.dll 内的接口创建一个对象 MyClass* objPtr1,
我还有一个ActiveX控件,也是使用同样方式创建上述类型的对象 MyClass* objPtr2
现在有一个场景,就是 ActiveX 被加载到 exe所在进程中,那么我想在ActiveX内有一个判断:
通过一个途径判断进程内某固定位置是否保存着exe创建的对象的指针,如果没有,那么创建,如果有那么使用exe创建的对象。(由于同属一个进程,那么只要有这个机制,这个指针就是有效的。)
由active加个接口类似于get_classptr,然后exe加载这个active控件的时候将objPtr1传入不就行了
直接通过接口传递指针。ActiveX内部判断一下是否为空等
我觉得你需要的这种方式似乎太绕远了。
你可以直接在lib1.dll 中引出一条c接口 比如createmyclass,无论exe还是active都是通过这个函数得到你的MyClass指针而不是去new出来,这样,就演变成自己的dll的这条函数内去判断是否已经new过的问题了。 内存共享不行?