我正在处理一个加载在应用程序 A 中的 dll,我想在应用程序 A 和另一个应用程序 B 之间共享接口/对象,所以,想法如下:
[国外应用A] <- [我的dll] <-> [我的应用B]
理想情况下是“以某种方式”将 dll 中的函数重新路由到 [我的应用程序 B]
我对一个优雅的解决方案感兴趣,一个不需要太多妥协的解决方案,想法?
编辑:[应用程序 A] 是用 C 编写的,[我的 dll] 和 [应用程序 B] 是用相同的 delphi 版本编写的。
为什么不在 [My Application B] 中公开一个 [My DLL] 可以访问和转发函数调用的自动化接口?
[My Application B]
IMyRemoteInterface = interface(IDispatch)
... Ole interface functions here ...
end;
TMyRemoteInterfaceImpl = class(TAutoObject, IMyRemoteInterface)
... Implementation gubbins ...
end;
接着
[My Application C]
Server = CreateOleObject(MyApplicationB.MyRemoteInterface)
....
Server.DoStuff
显然还有更多的东西,但你明白了要点。