描述:
现在我遇到这样一个问题
我写了一个com组件,a.dll形式,注册到系统中。
其他的程序会调用这个com组件的一些接口,
另外,我有个程序需要把这个a.dll加载进这个程序的进程空间里,这样,
我通过修改a.dll中的一些数据,可以改变其它调用这个com组件的程序的行为。
现在的问题是,我得程序里,无论是用loadlibrary还是cocreateinstance调用这个dll,其他程序调用com组件时,我的程序中的dll没有收到任何消息,
请问这是怎么回事呢?如何解决呢?谢谢!
解决方案1:
通过共享内存实现!在你的DLL里创建内存映射,在其它程序中打开内存映射,并可对其进行修改!具体应用要看你的程序逻辑!
解决方案2: mwp(精通VM)
说得有道理,注册模式很重要了,看看去
同意楼上的意见
解决方案4:看你com的注册模式了,如果是不同的套间就无法了,就像加载DLL一样,除非你特意做成共享的dll否则每个程序加载的dll是独立的!
解决方案5:能得到返回码吗?
解决方案6:其它程序调关你的程序调什么事,除非你有写专门捕捉消息的代码
解决方案7: 想法有问题,当你的COM组件已经运行的时候你如何更改它的DLL,你更改就会出错。我想这与exe的原理是一样的不可更改!你是否想窃取什么东东?否则为什么这么干!!
注册路径有问题,看看断点是否有效。