【问题标题】:How to merge a Console and Windows system program? [duplicate]如何合并控制台和 Windows 系统程序? [复制]
【发布时间】:2015-08-17 21:19:05
【问题描述】:

我必须使用 Windows 7 上的 Visual Studios 2013 组合 2 个单独的代码。第一个是使用 OpenCV、Qt 和 Intraface 的控制台应用程序。第二个是来自 Microsoft 的 Magnification API 的 Windows 应用程序。它们都单独工作,但是我无法将它们放在一起。我想使用微软的代码来放大屏幕的各个部分,但我不想从屏幕上的鼠标光标位置获取输入,而是想从第一个代码接收输入。

我想知道如何才能调用第一个代码来检索这个位置。我是否只需将第一个代码中的所有头文件和源文件添加到放大项目中?然后在 Magnification 项目的主循环中调用必要的函数,以便它可以相应地更新位置?

我是 C++ 新手,但我真的很想完成这项工作。任何关于我应该如何处理这个问题的指导都将非常感激。谢谢!

【问题讨论】:

  • 你做错了。在不了解 C++ 链接过程以及不了解 Windows API 的情况下尝试这样做,必然会导致混乱和错误。花点时间学习基础知识。
  • 提示:你需要链接magnification.lib
  • 当你说你想“合并”两个程序时,你到底是什么意思?到底是什么?
  • @JonathanPotter 当我合并这两个代码时,我在 .cpp 中包含了 magnification.h 头文件,并在 Linker 常规选项卡下编辑了项目属性以包含 .lib 文件的位置。并在 Linker Input 选项卡中包含了 magnification.lib 文件。我还需要做些什么吗?
  • 您似乎有两个不同的图像处理库,OpenCV 和 Magnification API,以及两个不同的窗口或多线程平台,Qt 和 Windows API,并且正试图将它们混合在一起。这听起来不像是适合这个论坛的东西。看看你能否让你的问题更具体。

标签: c++ qt opencv winapi visual-studio-2013


【解决方案1】:

您似乎做对了所有事情,只是您没有与放大库链接。

如果您查看缺少函数之一的文档,例如 MagInitialize,您会发现您需要将您的程序与 magnification.lib 链接。

鉴于您的程序很可能使用 qmake 项目文件(扩展名为 .pro)设置,请编辑项目文件并在文件中的任意位置添加以下行:

LIBS += -lmagnification

由于该库是 Windows SDK 的一部分,因此链接器知道在哪里可以找到它,您无需提供指向它的路径 - 只要您使用的是 Microsoft 编译器。如果您的编译器是 mingw,则情况可能会有所不同;我不确定 mingw 是否包含magnification.lib

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-19
    • 2011-01-26
    • 2014-11-21
    • 2014-07-18
    • 1970-01-01
    • 2011-10-04
    • 1970-01-01
    • 2013-04-14
    相关资源
    最近更新 更多