不使用Windows API或MFC的应用程序的一个实例

时间:2015-05-06 08:36:08

标签: c++

在采访中我遇到了这个奇怪的问题? 任何人都可以让我知道答案

这是怎么回事。 如何只使用基本的c ++运行应用程序的单个实例?

您不能使用任何Windows apis,也不能使用MFC。 你不能操纵注册表....

请让我知道..这是一个悬而未决的问题。虽然游戏结束了,但面试官还是要求我把它弄清楚..

希望我的问题不会冒犯堆栈溢出的目的......

1 个答案:

答案 0 :(得分:0)

所以,我将按照我对你发布的内容的解释:

  

如何使用基本的c ++ 运行应用的单个实例   只有??

太开放了。可能他期待你提出问题......就像:“好吧,它会运行哪个平台?”。我相信这是最重要的问题。

我的理解是他希望您的应用程序可执行文件使用C ++构建并编译到平台,运行另一个应用程序(第二个应用程序)的单个实例,没有系统调用,API或其他任何东西。无论您的应用程序如何运行,重要的是您将如何运行其他应用程序。因此,它引出了另一个重要问题:“我应该为其他应用程序编译哪个平台?”。如果它是Windows应用程序,则需要使用Windows系统调用运行,因为它具有特定于平台的依赖项。我在这里说Windows,但对于任何广泛使用的平台(如Unix)都是一样的。

我认为最通用的答案是:“在我使用基本C ++构建的应用程序中运行(内联)ASM代码,因为ASM代码遵循处理所有内容的处理器的指令集。”。

更直接:使用内联汇编,使用第二个应用程序说明直接在处理器上运行。

编辑 - 添加其他观点:

另一种方式,如果他想要的只是运行应用程序的单个实例你做了(很奇怪,但可能是他的问题),就是将你的C ++应用程序编译成特定的架构,加载(闪存,取决于平台)它到处理器内存,并启动处理器。这是一种“裸机”方法,这也是一个有效的答案。