gpt4 book ai didi

c++ - Qt 中的 Mac OS X 链接器错误; CoreGraphics 和 CGWindowListCreate

转载 作者:行者123 更新时间:2023-11-30 04:38:49 24 4
gpt4 key购买 nike

这是我的 .mm 文件

#include "windowmanagerutils.h"

#ifdef Q_OS_MAC
#import </System/Library/Frameworks/ApplicationServices.framework/Frameworks/CoreGraphics.framework/Headers/CGWindow.h>

QRect WindowManagerUtils::getWindowRect(WId windowId)
{
CFArrayRef windows = CGWindowListCreate(kCGWindowListOptionOnScreenOnly, kCGNullWindowID);
return QRect();
}

QRect WindowManagerUtils::getClientRect(WId windowId)
{
return QRect();
}

QString WindowManagerUtils::getWindowText(WId windowId)
{
return QString();
}

WId WindowManagerUtils::rootWindow()
{
QApplication::desktop()->winId();
}

WId WindowManagerUtils::windowFromPoint(const QPoint &p, WId parent, bool(*filterFunction)(WId))
{
return NULL;
}

void WindowManagerUtils::setTopMostCarbon(const QWidget *const window, bool topMost)
{
if (!window)
{
return;
}

// Find a Cocoa equivalent for this Carbon function
// [DllImport("/System/Library/Frameworks/Carbon.framework/Versions/Current/Carbon")]
// OSStatus ret = HIViewSetZOrder(this->winId(), kHIViewZOrderAbove, NULL);
}
#endif

链接器告诉我“_CGWindowListCreate”未定义。我必须链接到哪些库? Apple 的文档在说明要包含或链接到什么方面不是很有帮助,就像 MSDN 一样。我也不能只做 #import <CGWindow.h> ,我必须指定它的绝对路径......有什么办法吗?

最佳答案

CGWindowListCreate函数是 Quartz Window Services 的一部分.对应的框架是ApplicationServices它位于 /System/Library/Frameworks/ 下.

因此,您可以只包含 <ApplicationServices/ApplicationServices.h>在文件顶部并链接到 -framework ApplicationServices选项。

关于c++ - Qt 中的 Mac OS X 链接器错误; CoreGraphics 和 CGWindowListCreate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2919629/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com