小编RLT*_*RLT的帖子

提升,共享ptr和弱ptr?哪个用的?

在我目前的项目中,我使用boost::shared_ptr得非常广泛.

最近我的队友们也开始使用了weak_ptr.我不知道使用哪一个以及何时使用.

除此之外,如果我想转换weak_ptr为,我该怎么办shared_ptr?是否锁定在其他线程中weak_ptr创建shared_ptr影响我的代码?

c++ boost memory-management shared-ptr weak-ptr

43
推荐指数
3
解决办法
2万
查看次数

混合Quartz和OpenGL?

我试图找出背景中实际发生的事情(请看图片)

在此输入图像描述

正如您在图像中看到的,我添加了几个按钮,并从"界面"构建器中检查了窗口的"内容视图".

现在我们知道它会利用核心动画或说会创建图层.(如果我错了,请纠正我.还在学习...)

我想知道这些按钮是如何绘制的?

我的假设是当我们勾选内容视图时,这些按钮是从CGBitmapContextRef绘制的,并且从它创建的位图被移交给Core Animation(OpenGL).但到目前为止我无法证明这一点.我该如何证明?任何一个例子或一些方法的想法都会很棒?

我确定是从CGBitmapContextRef创建的按钮.但是那些按钮图像会发生什么变化是未知的.

任何人都可以解释这种整合怎么可能?这些图像将如何出现在屏幕上?

编辑:

要添加有关同一主题的更多信息,请查看下面的图片,了解OpenGL的各个层次.我想我的目标是普通的OpenGL Framework层. 在此输入图像描述

opengl macos cocoa core-animation core-graphics

20
推荐指数
1
解决办法
1130
查看次数

从pid获取真正的应用路径?

如何从流程ID获取流程详细信息,如应用程序名称和应用程序的实际路径?

我使用的是Mac OS X.

macos bsd macos-carbon process

20
推荐指数
4
解决办法
2万
查看次数

在代码中使用#ifdef是不好的做法吗?

我必须使用#ifdef i386x86_64作为特定于体系结构的代码,有时需要#ifdef MAC或#ifdef WIN32 ...等等,以便进行特定于平台的代码.

我们必须保持公共代码库和便携式.

但我们必须遵循使用#ifdef严格禁止的指导原则.我不明白为什么?

作为这个问题的扩展,我还想了解何时使用#ifdef?

例如,dlopen()在从64位进程运行时无法打开32位二进制,反之亦然.因此它更具体的架构.在这种情况下我们可以使用#ifdef吗?

c++ macos coding-style

16
推荐指数
3
解决办法
1万
查看次数

QTabBar与QTabWidget

我在我的项目中使用QTabWidget.我应该使用QTabBar而不是QTabWidget吗?

如果我使用QTabWidget,我有什么优势?

qt qtabbar qtabwidget

15
推荐指数
1
解决办法
7228
查看次数

什么是可以同时绘制界面构建器?

我从未使用过可以在iterface builder中提到的并发选项.见下图:

在此输入图像描述

有人可以解释一下它的用途和用途吗?

macos xcode cocoa objective-c interface-builder

12
推荐指数
1
解决办法
3963
查看次数

如果加载dylib,垃圾收集工作队列崩溃

我们正在将应用程序从10.6移植到10.8.我正在看我们在app中加载的dylib.我在垃圾收集工作队列中面临非常不寻常的崩溃,并带有以下消息.

malloc: Thread::suspend():  unable to suspend a thread:  err = 268435459, Thread 0x111000000: _pthread = 0x108129000, _thread = 0x8b07, _stack_base = 0x108129000, enlivening  on, 0 local blocks
Run Code Online (Sandbox Code Playgroud)

为应用程序GCC_ENABLE_OBJC_GC = required设置.如果我GCC_ENABLE_OBJC_GC = required在dylib中它仍然会崩溃.我不能在应用程序中关闭垃圾收集器.我必须从我的dylib管理崩溃.

崩溃的原因原因是垃圾收集器无法挂起线程.(正如它在日志中所说).该线程使用thread_create()创建.如果我在dylib的构造函数中放置一个无限期的while循环(带睡眠),我就不会崩溃.构造函数完成执行后,我崩溃了.

他们是一种告诉垃圾收集器不要尝试暂停线程的方法吗?或者增加线程的引用次数?或者我可以做的任何事情来阻止垃圾收集器不干扰我的dylib代码.

macos garbage-collection pthreads objective-c osx-mountain-lion

12
推荐指数
1
解决办法
613
查看次数

有没有办法检查进程是64位还是32位?

我试图从进程pid中找到进程类型(32位/ 64位)?

我从使用此处描述的GetBSDProcessList方法获取进程信息和进程列表.

我们如何获取流程类型信息?有任何想法吗?

我可以使用已定义的(i386)或已定义的(x86_64),但前提是我们正在进行中.我不在这个过程中.

c macos macos-carbon objective-c

10
推荐指数
1
解决办法
1443
查看次数

关闭由升级库引起的警告

我正在使用C++,Mac OS X,Qt和使用boost库构建应用程序.每次我构建一个项目时,我只会从boost库本身获得一个巨大的警告列表.

如何关闭它们,以便我只能看到我的项目特定警告和错误?

c++ macos xcode boost

9
推荐指数
1
解决办法
2727
查看次数

卸载动态库需要两个dlclose()调用吗?

我有一个动态库,我加载使用dlopen()然后卸载使用dlclose();

如果我不包含任何目标c代码dlopen()需要一个dlclose()预期行为的调用.但是当我将任何目标c代码包含在目标中时,我遇到的问题是我需要对dlclose()加载的库进行两次调用才能卸载.

这是预期的行为吗?我该如何解决?

c macos cocoa objective-c dylib

9
推荐指数
1
解决办法
3144
查看次数