Ways to access a 32bit DLL from a 64bit exe

后端 未结 3 686
心在旅途
心在旅途 2020-12-03 03:22

I have a project that must be compiled and run in 64 bit mode. Unfortunately, I am required to call upon a DLL that is only available in 32 bit mode, so there\'s no way I ca

3条回答
  •  星月不相逢
    2020-12-03 04:26

    As you correctly note, there is no way to mix bitness in the same process. You need a separate process for your 32-bit part.

    I think hosting a WCF Service is the right way to go. Your link only talks about wcfsvchost. I am pretty sure you can create your own Windows Service, and host the WCF service in that on 32 bit.

    See this link: How to host a WCF service in a managed application. You can host your service in any managed application, including a Windows Service, and run it under the bitness you like.

    This is the amount of code required to self-host a WCF service in your application, assuming you have just created a new service called MyService, and the appropiate configuration has been added to app.config:

    class Program
    {
        static void Main(string[] args)
        {
            using(ServiceHost host = new ServiceHost(typeof(MyService), new Uri[0]))
            {
                host.Open();
                Console.ReadKey();    
            }
        }
    }
    

    The above program will run just as well, also if you compile it explicitly as 32 or 64 bit.

提交回复
热议问题