32位应用程序中的64位功能?

ron*_*nag 6 c++ 64-bit sse x86-64 visual-studio-2010

我有一个32位应用程序,我计划在64位Windows 7上运行.

在此阶段,由于依赖于第三方功能,我无法将整个应用程序转换为64位.

但是,我想在我的SSE优化中访问xmm9-xmm15寄存器,并且在执行我的应用程序时也使用64位cpus提供的附加寄存器.

这有可能用一些编译器标志来实现吗?

Ole*_*leg 9

在我看来,最好的方法是将程序划分为多个可执行文件.编译为64位的EXE可以与另一个32位EXE通信,使用您需要的32位第三方DLL.您将在通信中遇到一些开销,并且必须实现依赖进程的启动/停止,但您将拥有清晰的程序体系结构.

如果您开发本机C++应用程序,您可以实现第二个EXE,例如COM ++进程外对象(LocalServer甚至LocalService).您可以考虑在C#中实现COM服务器的方法(参见此处).有时这种方式可以简化实现,您可以使用.NET和本机编程的优点.