用于32位dll访问的自托管WCF服务

本文关键字:WCF 服务 32位 dll 访问 用于 | 更新日期: 2023-09-27 18:13:08

我有一个Windows窗体应用程序的Visual Studio解决方案,其中一些类库是我的应用程序模块。我的应用程序在"任意CPU"下运行,不能更改为"x86",因为它使用了大量64位的dll引用。

我有一个本地c++ 32位dll,我需要在一个应用程序模块内使用,但这是非常不可能的,不想使用包装器,所以我读到最简单的是使用自托管WCF服务。

我正在考虑的方法是创建一个控制台应用程序(32位)项目,这将引用本地c++ 32位dll,在我的解决方案中,它将托管WCF服务,然后当用户打开应用程序模块时,我将调用进程。启动(自托管wcf控制台app.exe)所以我的wcf服务启动,然后从我的windows窗体应用程序,我可以访问的方法,等等。然后我将能够使用本机32位dll方法。

我想这就是所谓的进程外应用程序。

有人认为有更好的方法吗?我真的不喜欢有。exe应用程序(主应用程序exe和自托管wcf .EXE),我可以有自托管wcf 32位项目住在我的主应用程序。exe 64位项目?如果可能的话,我该怎么称呼它呢?

Thanks in advance

用于32位dll访问的自托管WCF服务

我在我的项目中这样做了,我们将项目命名为_x64或_x86,您可以在同一解决方案中拥有两个项目,只需更改构建设置。我们将其命名为进程隔离。
请确保以下内容:

  • 当父进程死亡时会发生什么
  • 子进程死亡时会发生什么
  • 当父进程知道子进程是活的-开始使用wcf.
  • 你需要x86的调用是异步的?然后使用合适的异步模式

你可以从我的问题中得到答案:

验证子进程WCF服务是否启动:c# .net 3.5进程间通信验证子进程是否启动ok

Close宿主进程:关闭宿主进程的最佳方式

项目参考解决方案:项目参考解决方案。net 4.5和。net 3.5