使用COM桥从32位进程调用64位进程-如何使COM对象访问硬件资源

时间:2019-06-13 22:47:58

标签: c# windows dll com regasm

我正在编写一个C#WPF图形界面,客户端需要使用它来使用许多封闭源代码的依赖项。其中一些依赖项没有64位版本。但是,有一部分代码要求将其编译为64位,以允许其访问更多内存。为了解决这个问题,我将大多数应用程序都编译为32位,对于需要64位的部分,我将其拆分为单独的dll,并使用了COM桥。我按照以下指南创建了桥:

https://www.codeproject.com/Tips/1199539/Using-bit-DLLs-in-bit-Processes-Using-Out-of-proce

这一切都很好,我可以通过com桥从32位dll调用64位dll中的方法。但是,我遇到了一个问题。通过regasm注册的64位dll无法访问硬件资源。

COM注册的DLL引用了一组与X射线检测器接口的程序集。这些程序集使.NET程序能够扫描并连接到与PC相连的X射线检测器设备。问题的症结在于:

通过COM桥调用此64位dll中的方法时,该dll无法找到或连接到与PC相连的X射线硬件。但是,如果我创建一个直接引用该程序集的测试程序,问题就会消失。

因此,我的问题是:我是否需要授予COM注册的DLL许可才能访问硬件资源?

0 个答案:

没有答案