我正在开发一个依赖于某些外部硬件的嵌入式C项目.我希望删除访问这些部分的代码,这样我就可以在不使用任何硬件的情况下模拟系统.到目前为止,我已经使用了一些宏,但这迫使我改变我的生产代码,我想避免.
stub.h
#ifdef _STUB_HW
#define STUB_HW(name) Stub_##name
#else /*_STUB_HW*/
#define STUB_HW(name) name
#endif /*_STUB_HW*/
my_hw.c
WORD STUB_HW(clear_RX_TX)()
{ /* clear my rx/tx buffer on target HW */ }
test_my_hw.c
#ifdef _STUB_HW
WORD clear_RX_TX()
{ /* simulate clear rx/tx buffer on target HW */ }
Run Code Online (Sandbox Code Playgroud)
使用此代码,我可以使用预处理程序标记打开/关闭存根._STUB_HW
有没有办法在不更改我的prod代码的情况下完成此操作,并避免大量的ifdef.如果可以避免,我不会在同一个文件中混合使用prod和test代码.我不关心测试代码的外观,只要我能尽可能多地保留生产代码.
如果可以在不替换整个文件的情况下选择/重命名函数,那就太好了.像采取一切功能上开始nRF_##并给予那么新的名称,然后插入test_nRF_##到nRF_##,如果它是更多钞票
我开始喜欢Lambda的表达,但我正在努力通过这面墙:
public class CompanyWithEmployees {
public CompanyWithEmployees() { }
public Company CompanyInfo { get; set; }
public List<Person> Employees { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的搜索:
List<CompanyWithEmployees> companiesWithEmployees = ws.GetCompaniesWithEmployees();
CompanyWithEmployees ces = companiesWithEmployees
.Find(x => x.Employees
.Find(y => y.PersonID == person.PersonID));
Run Code Online (Sandbox Code Playgroud)
所以,我想获得具有我正在寻找的那个Person(Employee)的Object"CompanyWithEmployees",但我得到" 不能隐含地将'Person'转换为'bool') "这是正确的,但如果我'我没有传递Person对象,第一个Find怎么执行?
我需要提供音频内容(不过音乐,更像是播客;人类语音),而我正在考虑使用基于闪存的播放器让用户无需下载即可听到内容.
我需要一个免费的嵌入式闪存MP3播放器.有什么建议?
因为它不是音乐,我不关心播放列表(我不想要它们,它们会妨碍它),我需要一个搜索栏(如果这就是你所说的),我也不想要它显示文件名或标题任何疯狂的东西,只是一个播放/暂停按钮和一个搜索栏.
或者,如果它不是很复杂,我可能会尝试自己制作一个.有没有人有经验建立这样的东西,让我了解它会有多难?
更新 我正在看这个http://www.macloo.com/examples/audio_player/
虽然,我不知道是谁制作的,以及它是否免费?
我想为php中的set_time_limit()设置sql查询的最大执行时间.我能怎么做 ?
我正在尝试使用CVS(2009-01-05)的粘液,但一直收到这个错误:
LOAD: A file with name
/usr/share/common-lisp/source/slime/swank-loader.lisp does not exist
我把我的.emacs剥离到了:
(setq inferior-lisp-program "/usr/bin/clisp")
(add-to-list 'load-path "/home/ssm/lisp/slime/")
(require 'slime)
(slime-setup)
Run Code Online (Sandbox Code Playgroud)
我已经删除了我的〜/ .slime目录,以'emacs -q'开头并且对上面的代码进行了评估,但是当我运行slime(通过Mx slime)时我一直收到LOAD错误.有关如何解决此错误的任何想法?
FWIW,我试图通过apt-get安装slime,但我也一直在收到关于cl-swank被破坏的错误.那是一个完全不同的故事.
所以我正在学习java,我有一个问题.看起来这些类型int,boolean并且string几乎float可以满足我在变量方面所需要的一切,除非在数字中需要十进制数字时可以使用.
我的问题是,其他类型的如long,double,byte,char等曾经在正常的日常编程中使用?可以使用哪些实用的东西?他们存在什么?
如您所知,在Internet Explorer下出于安全原因,不允许进行跨域XMLHTTP请求.
我有一个WebBrowser控件,我正在使用DocumentText而不是NavigateURL.由于当前域是about:blank当页面尝试向自己或其他域发出请求时,我收到Access is deniedJavascript错误.
即使我使用NavigateJavascript向另一个域发出请求它也不起作用.
我怎么能绕过这个?
此HTML代码应与WebBrowser控件一起使用:
<body>
<a href="javascript:getit('http://www.google.com')">this should work</a>
<div id="x"></div>
</body>
<script>
function XHConn()
{
var xmlhttp, bComplete = false;
try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
catch (e) { try { xmlhttp = new XMLHttpRequest(); }
catch (e) { xmlhttp = false; }}}
if (!xmlhttp) return null;
this.connect = function(sURL, sMethod, sVars, fnDone)
{ …Run Code Online (Sandbox Code Playgroud) 我把一些页面内容(已经通过整理运行,但并不需要是如果这是问题的根源)进入DOMDocument使用DOMDocument::loadHTML.
它出现了各种错误:
ID x已在实体X行中定义
有没有办法让DOMDocument(或整齐)忽略或删除重复的元素ID,所以它实际上会创建DOMDocument?
谢谢.:)
我正在使用套接字来读取所有传入的短信:
`smsAddr.SetTextMatch(KNullDesC8);`
Run Code Online (Sandbox Code Playgroud)
属于我的那些我接受:
iReadSocket.Ioctl(KIoctlReadMessageSucceeded, iStatus, NULL, KSolSmsProv);
Run Code Online (Sandbox Code Playgroud)
那些恶意的(如当前的Silence SMS威胁)我会停止,其他我想传递到Inbox.
目前我的问题是将短信转发到收件箱 - 它们只会在重启设备后出现在那里.
是否有任何API或解决方案迫使Symbian重新将短信写入收件箱?