- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在看 this MSDN article其中讨论了如何通过计算机上的图形适配器进行枚举。在下面的代码示例中,我注意到 IDXGIAdapter * pAdapter
从未被明确删除。我业余的 C++ 大脑将此视为内存泄漏。有什么理由不删除吗?
std::vector <IDXGIAdapter*> EnumerateAdapters(void)
{
IDXGIAdapter * pAdapter;
std::vector <IDXGIAdapter*> vAdapters;
IDXGIFactory* pFactory = NULL;
// Create a DXGIFactory object.
if(FAILED(CreateDXGIFactory(__uuidof(IDXGIFactory) ,(void**)&pFactory)))
{
return vAdapters;
}
for ( UINT i = 0;
pFactory->EnumAdapters(i, &pAdapter) != DXGI_ERROR_NOT_FOUND;
++i )
{
vAdapters.push_back(pAdapter);
}
if(pFactory)
{
pFactory->Release();
}
return vAdapters;
}
最佳答案
IDXGIAdapter
最终派生自 IUnknown
,它是几乎所有 DirectX 相关类的基类(COM 接口(interface))。
因此,您通常不应显式调用它们的 delete
。相反,您想使用 COM 方法 Release()
,它会在内部减少对象的引用计数并在必要时自动删除它。将其视为一种智能指针。
在这个具体示例中,指针被插入到 std::vector
中,并返回这样一个 vector 。所以一定不要释放它,否则它会变成悬空指针。
关于c++ - 为什么这个 MSDN 示例中的指针没有被删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32142138/
有人提出了类似的问题:MSDN subscriptions on the cheap? ,但我对提供的解决方案不感兴趣: 我不是在开发用于销售的产品,而是在创办一家咨询公司,因此 Empower 不是
我一直在 .NET 编程专业工作了三年,我一直在寻求磨砺我的工具。我是一家公司的独家开发人员,该公司最近购买了 MSDN 订阅以及 Visual Studio 2008专业的。订阅有哪些用处? 我习惯
有没有办法关闭MSDN 库页面的自动文本翻译? 我确实更喜欢英文文本,但由于拥有德语 IP 地址,微软会在每个新页面加载时激活自动翻译,这会给我一个黄色框,其中包含我当前用鼠标悬停在其上的文本的德语翻
我知道这个问题有点异端,但我很好奇...... 当然,也有特快版。但是,当微软在 OSS 世界中有效地争夺“人心”时,向全心全意支持 .NET 的开发人员收取高昂的微软软件订阅费似乎有点适得其反。很难
想知道这里是否还有其他人注册了相同的程序并可以给我一些建议。我在一两个月前的某个时候注册了 Microsoft BizSpark 计划,并激活了该计划附带的 MSDN 订阅。 在我登录到 MSDN 门
我一直被一个问题困扰:“Javadoc、Doxygen 等等……微软真的有可能不为其开发人员提供良好的文档生成器吗?”。它对我来说一直听起来很奇怪......也因为 Msdn 是一个非常好的文档排版.
我试图做一些遗留工作,并在 MSDN 上查找了 Visual C++ 6。我再也看不到它了,我能做的最好的是 Visual C++ 4.2! 有谁知道为什么会这样?有没有办法从 MSDN 获取它? 最
我升级到 Visual Studio 2010 RC,我记得为 MSDN 帮助改进事件填写了一个大表格,我想知道我会看到 Visual Studio 2008 中包含一个类似 MSDN 的帮助查看器,
我在一家小型数字营销公司工作,担任程序员,我们不是 Microsoft 合作伙伴或任何类型(金/银/铜)。但是,我们使用 .NET。 我感到困惑的是,我之前的开发人员已经离开,他获得了最新 Micro
首先,请不要以为这不是编程相关的问题,因为它非常重要。 当我在高中使用VB 6时,MSDN简直太棒了,我再也没有在其他地方寻求帮助。然后是整个.net和在线MSDN,什么也没有,并且不再有任何实际示例
我只是一个人的软件商店,并且目前有MSDN订阅。它即将更新,看起来好像要花一小笔钱。我看到TechNet订阅的费用大大减少,并且似乎包括所有相同的软件。我在这里想念什么吗?这两个软件包之间有什么区别?
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我知道这不完全是编程问题,但它是紧密相关的 - 到底如何设置 MSDN 以英文显示所有内容?我是捷克人,每一篇知识库或文档文章都会通过翻译器自动翻译为捷克语,这只会导致乱码,而将其切换为英语需要几次搜
我觉得问这个问题有点愚蠢,但我希望这对其他人也有帮助。 背景:我们/我正在使用Visual Studio 2008 SP1 (VC9)开发一些软件。我们希望随 CD 上的软件一起提供 vcredist
有没有办法以编程方式查询 MSDN.com?本质上,我有一个类名、命名空间或其他标识符,并希望找到 MSDN 文档页面,最好也传递一个版本(.net 3.5、.net 4.0、Silverlight
关闭。这个问题是 off-topic 。它目前不接受答案。 想改善这个问题吗? Update the question 所以它是堆栈溢出的 on-topic。 9年前关闭。 Improve this
我注意到 MSDN 在提及事件及其事件处理程序时多次使用“错误”术语。例如: The ProfileAutoSaving event is raised at the end of page exec
MSDN 订阅使开发人员可以访问 Visual Studio 2010 和最新的 Microsoft 平台进行开发和测试。 Microsft MSDN 订阅白皮书指出,通过“企业协议(protocol
今天在看MSDN的时候,遇到了如下代码: void draw( int I, long L ); long sq( int s ); int main() { long y; int x; y = s
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 9年前关闭。 Improve this q
我是一名优秀的程序员,十分优秀!