我正在编写一个需要在高dpi Windows(192dpi而不是96dpi)上运行的Qt应用程序.
不幸的是Qt框架还没有支持high-dpi(至少在Windows上),所以我的应用程序及其所有元素看起来应该是它应该的一半.
有没有办法强制/模拟Windows自动升级此类应用程序?
我在刚刚构建的 dylib 上使用 otool -L 检查了一些依赖关系,并得到了以下系统依赖关系:
/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1311.0.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1853.0.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1200.3.0)
Run Code Online (Sandbox Code Playgroud)
该库在我的系统(MacBook Air m1 上的 macOS 12.0.1)上运行良好,但令我惊讶的是,当我尝试检查这 4 个库时,它们似乎不在我的系统中。/usr/lib 不包含 libc++.1.dylib 和 libSystem.B.dylib,并且 /System/Library/Frameworks 似乎包含 Accelerate 和 CoreFoundation 框架的大部分空结构,而没有库本身。然而我的 dylib 工作正常,我无法解释。
当我检查 macOS 10.14 等较旧的系统时,我可以在预期的位置看到这 4 个库和框架。
macOS 最近是否发生了某些变化,以某种方式隐藏了这些系统库或默默地将它们路由到其他地方?我如何/在哪里可以看到它们?
SIGABRT, SIGSEGV and SIGILL
当我的控制失败并且程序需要退出时,我需要捕获以向用户显示正确的严重错误消息.
但是我的程序会进行大量的实时计算,因此性能非常重要.
signal()
(http://www.cplusplus.com/reference/csignal/signal/)是否会导致任何performance loss
(某种常量监视?)或根本不会(仅在发生异常时触发,否则不会丢失性能).
编辑:我的软件在Windows(7及更高版本)和OS X(10.7及更高版本)上运行.