具体来说,我想知道我应该写些:
{
shared_ptr<GuiContextMenu> subMenu = items[j].subMenu.lock();
if (subMenu)
subMenu->setVisible(false);
}
Run Code Online (Sandbox Code Playgroud)
要么:
{
if (items[j].subMenu.lock())
items[j].subMenu.lock()->setVisible(false);
}
Run Code Online (Sandbox Code Playgroud)
我不需要遵循任何风格指南.优化后,我认为这两种选择都不会对性能产生影响.什么是一般的首选风格,为什么?
编辑:项目类型[j] .subMenu是boost :: weak_ptr.lock()从中创建一个shared_ptr.上面两个版本实际上有一个模糊的区别,关于临时shared_ptr持续多长时间,所以我将我的两个例子包装在{braces}中以解决那里的歧义.
我有一个C#项目,为RSS提要播放摩尔斯电码.我使用Managed DirectX编写它,却发现Managed DirectX已经过时并且已弃用.我的任务是播放纯正的正弦波突发,其间穿插着静音期(代码),它们的持续时间精确定时.我需要能够调用一个播放纯音多少毫秒的函数,然后Thread.Sleep()然后播放另一个等等.最快,音调和空格可以短至40ms.
它在Managed DirectX中运行良好.为了获得精确定时的音调,我创造了1秒.将正弦波放入辅助缓冲器,然后播放一定持续时间的音调,我在缓冲结束的x毫秒内向前寻找然后播放.
我试过System.Media.SoundPlayer.这是一个失败者[编辑 - 请参阅下面的答案]因为你必须播放(),睡眠(),然后停止()任意音长.结果是音调太长,因CPU负载而异.实际停止音调需要不确定的时间.
然后,我踏上了漫长的尝试使用n音讯1.3.我最终得到了一个提供音调数据的内存驻留流,并再次向前搜索,留下流中剩余的所需音调长度,然后播放.这在DirectSoundOut类上工作了一段时间(见下文),但WaveOut类很快就死了,内部断言说尽管PlayerStopped = true,缓冲区仍在队列中.这是奇怪的,因为我玩到最后然后在音调结束和下一个开始之间等待相同的持续时间.您认为在开始播放40毫秒音调后80毫秒,队列中没有缓冲区.
DirectSoundOut运行良好一段时间,但它的问题是,对于每个音调突发Play()它旋转一个单独的线程.最终(5分钟左右)它就停止工作了.在VS2008 IDE中运行项目时,可以在"输出"窗口中退出线程后查看线程之后的线程.我不会在播放期间创建新对象,我只是Seek()音色流然后反复调用Play(),所以我认为这不是孤立缓冲区的问题/无论是什么堆积直到它被阻塞.
我对这一个没有耐心,所以我希望这里有人遇到类似的要求,并且可以引导我朝着一个可能的解决方案的方向前进.
\documentclass{book}
\usepackage{amsmath}
\usepackage[german]{babel}
\usepackage{amssymb}
\usepackage{amsxtra}
\usepackage[dvips]{epsfig,psfrag}
\usepackage{listings}
\newcommand{\refchapter}[1]{Kapitel~\ref{#1}}
\newcommand{\refsec}[1]{Sektion~\ref{#1}}
\newcommand{\refeqn}[1]{Gleichung~(\ref{#1})}
\newcommand{\reffig}[1]{Abbildung~\ref{#1}}
\title{\bf Grundz\"uge der Softwareentwicklung \\
{\small Analyse- und Entwurfsdokument} \vspace{1cm}\\
\centering
\epsfig{file=figures/logo.eps,width=.4\textwidth}
}
\author{Uschi Musterfrau, Detlef Mustermann und Ralf Auchmustermann}
\date{Matr.-Nr. 0815, 0816 und 0817 \\
email: {\tt [uschi|detlef|ralf]@rwth-aachen.de}
}
\begin{document}
\lstloadlanguages{[ISO]C++}
\lstset{basicstyle=\small, numbers=left, numberstyle=\footnotesize,
stepnumber=1, numbersep=5pt, breaklines=true, escapeinside={/*@}{@*/}}
\pagestyle{headings}
\maketitle
\tableofcontents
\include{vorwort}
\include{analyse}
\include{entwurf}
\include{nutzerdoc}
\include{entwicklerdoc}
\bibliographystyle{plain}
\bibliography{analyse_entwurf}
\appendix
\include{quellcode}
\end{document}
Run Code Online (Sandbox Code Playgroud)
这是我的文件开始的方式.我甚至没有编辑它,我收到它就像这样.但是,如果我想制作一个pdf,它会在第一行给出未定义的控制序列错误......有什么问题?
有一个已建立的libsyn rss feed,为播客建立了一个新的drupal网站.Libsyn提供了一个玩家但不正确的美学.我可以上传和播放带有音频模块和mp3播放器模块的mp3文件,就像MP3播放器的输出,一个简单的flash播放器,但我不想每周手动移动播客音频文件(mp3).看着使用Feeds自动导入,但是它不起作用,而且在drupal站点上不必要地创建了额外的文件.
只想在drupal页面中使用mp3player modulee的flash播放器,该页面从libsyn rss提要中提供最新的mp3文件.不需要存储或播放多集,只是最新一集.
你会怎么做?
是否有可能从该类的构造函数中获取新实例化的类的内存分配地址?
我正在开发一个链表,其中多个类有多个指向类的指针.每次新类实例化时,都需要检查其父级列表以确保它包含在内.
如果我尝试做这样的事情:
MyClass() // constructor
{
extern MyClass * pParent;
for ( int i = 0; i < max; i++ )
{
pParent->rels[i] == &MyClass; // error
}
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
错误C2275:'namespace :: MyClass':非法使用此类型作为表达式
任何想法或建议将不胜感激.谢谢.
在我看来,如果你在更新语句中有相互依赖的字段,我不确定是否可以保证订购(或者需要!).
例如,假设您有以下更新:
UPDATE Table
SET NewValue = OldValue, OldValue = NULL
Run Code Online (Sandbox Code Playgroud)
NewValue会不会先更新,然后OldValue会被取消?或者是在处理期间行(或集合,或表等)的状态是不可变的,以便在计算更改之前不会提交所有更改?
我使用Qt进行TCP通信.如果我的PC有2个网络接口(比如eth0,eth1),并说我想明确使用eth1,我该如何在Qt中做到这一点?
我有一个(单行)TextCtrl.用户将数据输入到此中.当他们按回车键时,需要提取该框的内容以便对其进行处理.我无法弄清楚如何抓住进入被按下.
根据该文档,与风格wx.TE_PROCESS_ENTER我TextCtrl设置,它应该在的盒子,我会再搭上被按下时输入生成wx.EVT_COMMAND_TEXT_ENTER事件.然而,wx.EVT_COMMAND_TEXT_ENTER似乎不存在(我得到"模块没有属性EVT_COMMAND_TEXT_ENTER),所以我有点卡住.谷歌搜索只是得到几个人抱怨wx.EVT_COMMAND_TEXT_ENTER不起作用,所以我想我需要另一种方式.
是否有标准的C库函数来转义C字符串?
例如,如果我有C字符串:
char example[] = "first line\nsecond line: \"inner quotes\"";
Run Code Online (Sandbox Code Playgroud)
我想要打印
"first line\nsecond line: \"inner quotes\""
Run Code Online (Sandbox Code Playgroud)
是否有一个库函数可以为我做这个转换?滚动我自己似乎有点傻.
奖励积分,如果我可以给它一个长度逃脱(所以它停止之前或之外\0).
我已经完成了我的第一个iPhone应用程序(SO帮了很多...谢谢).现在我想将我的应用程序提交到应用商店进行审核.我可以使用itunes connect提交我的应用程序.我几乎没有问题.
1)我不知道如何创建发布版本.我的意思是我不知道它需要什么配置文件.有帮助视频,但它们都指导进行开发配置而不是发布.
2)我在哪里指定所有应用程序属性,如流派等.
3)我没有iTunesArtwork,但是当我创建分发版本时它没有显示在我的iTunes中.发布是否相同?
希望我的问题是真实的.