繁体   English   中英

在64位应用程序中使用32位interop dll

[英]Using 32 bit interop dll in 64 bit application

我对使用32位interop dll和64位进程感到困惑。 为了访问8TB的内存,我将构建我的64位应用程序,不幸的是它使用了一些以32位模式构建的统计互操作库。 我没有这个库的源代码所以我无法将它重建为64位。

文章的建议是创建64个代理程序将使用IPC(如WCF)我的应用程序进行通信。 在这里,我们可以找到使用Runtime Callable Wrapper( RCW )的解决方案。 哪个更好? 我开始实施代理流程,就在今天我找到了第二个解决方案,我不知道它是否适合我的需求。

我需要提一下,这个统计互操作库有数百个接口和类。 我仍然需要其中一些。 我已经开始创建WCF服务托管其中几个作为端点,它似乎将是很多代码/工作。

我可以使用第二种方法(RCW)与interop dll一起使用吗?

此致,约特贝克

嗯,“更好”是一个加载的术语。 但是,是的,COM代理可以使它成为一个简单的方法来实现这一目标。 如果你可以使用系统代理,当库设计得很好时,几率总是好的,那么你只需要将注册表键复制到64位密钥中并调整其中一些以使用代理,这一切都可以在没有你编写任何代码。 MSDN起始页面在这里

当图书馆不支持跨公寓编组时,它将无法解决。 如果您不知道是否这样做,那么尝试从工作线程调用库函数。 如果这不起作用,那么不要费心去尝试。 如果这个库容易崩溃,那么你将失去“更好”,这在一个进程外的场景中总是很糟糕。 速度可能是一个问题,进程外调用有很多开销。 但无论哪种方式,你都会坚持下去。 通过联系图书馆老板寻求支持,您将获得良好的答案,而不是猜测。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM