在我目前的项目中,我使用boost::shared_ptr得非常广泛.
最近我的队友们也开始使用了weak_ptr.我不知道使用哪一个以及何时使用.
除此之外,如果我想转换weak_ptr为,我该怎么办shared_ptr?是否锁定在其他线程中weak_ptr创建shared_ptr影响我的代码?
我试图找出背景中实际发生的事情(请看图片)

正如您在图像中看到的,我添加了几个按钮,并从"界面"构建器中检查了窗口的"内容视图".
现在我们知道它会利用核心动画或说会创建图层.(如果我错了,请纠正我.还在学习...)
我想知道这些按钮是如何绘制的?
我的假设是当我们勾选内容视图时,这些按钮是从CGBitmapContextRef绘制的,并且从它创建的位图被移交给Core Animation(OpenGL).但到目前为止我无法证明这一点.我该如何证明?任何一个例子或一些方法的想法都会很棒?
我确定是从CGBitmapContextRef创建的按钮.但是那些按钮图像会发生什么变化是未知的.
任何人都可以解释这种整合怎么可能?这些图像将如何出现在屏幕上?
编辑:
要添加有关同一主题的更多信息,请查看下面的图片,了解OpenGL的各个层次.我想我的目标是普通的OpenGL Framework层.

如何从流程ID获取流程详细信息,如应用程序名称和应用程序的实际路径?
我使用的是Mac OS X.
我必须使用#ifdef i386和x86_64作为特定于体系结构的代码,有时需要#ifdef MAC或#ifdef WIN32 ...等等,以便进行特定于平台的代码.
我们必须保持公共代码库和便携式.
但我们必须遵循使用#ifdef严格禁止的指导原则.我不明白为什么?
作为这个问题的扩展,我还想了解何时使用#ifdef?
例如,dlopen()在从64位进程运行时无法打开32位二进制,反之亦然.因此它更具体的架构.在这种情况下我们可以使用#ifdef吗?
我在我的项目中使用QTabWidget.我应该使用QTabBar而不是QTabWidget吗?
如果我使用QTabWidget,我有什么优势?
我从未使用过可以在iterface builder中提到的并发选项.见下图:

有人可以解释一下它的用途和用途吗?
我们正在将应用程序从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
我试图从进程pid中找到进程类型(32位/ 64位)?
我从使用此处描述的GetBSDProcessList方法获取进程信息和进程列表.
我们如何获取流程类型信息?有任何想法吗?
我可以使用已定义的(i386)或已定义的(x86_64),但前提是我们正在进行中.我不在这个过程中.
我正在使用C++,Mac OS X,Qt和使用boost库构建应用程序.每次我构建一个项目时,我只会从boost库本身获得一个巨大的警告列表.
如何关闭它们,以便我只能看到我的项目特定警告和错误?
我有一个动态库,我加载使用dlopen()然后卸载使用dlclose();
如果我不包含任何目标c代码dlopen()需要一个dlclose()预期行为的调用.但是当我将任何目标c代码包含在目标中时,我遇到的问题是我需要对dlclose()加载的库进行两次调用才能卸载.
这是预期的行为吗?我该如何解决?
macos ×8
objective-c ×4
c++ ×3
cocoa ×3
boost ×2
c ×2
macos-carbon ×2
xcode ×2
bsd ×1
coding-style ×1
dylib ×1
opengl ×1
process ×1
pthreads ×1
qt ×1
qtabbar ×1
qtabwidget ×1
shared-ptr ×1
weak-ptr ×1