我正在研究开发一种应用程序,它将以每秒约2000行(帧)的速度处理来自线扫描相机的数据.对于这个实时应用程序,我觉得C/C++是要走的路.(这是我的感觉,其他人会同意托管代码不适合这项任务.)
不过,我已经做了非常少的MFC或任何其他的C++图形用户界面.不过,我真的很想做C#GUI.
所以我很自然地用C/C++编写数据密集型代码,用C#编写GUI.GUI将用于设置/校准/在线监控(并可能通过UDP输出数据,因为它在C#中更容易.
首先,我想看看是否有人同意这将是要走的路.根据我的编程经验(擅长低级C算法和高级C#GUI设计),感觉恰到好处.
其次,我不确定正确的方法.我只是在VS2005中汇总了一个解决方案,它从C#应用程序中调用了一些(extern"C")DLL函数.为了确保我能做到这一点,我写了DLL中的一些全局变量,并从中读取:
test.h
int globaldata;
extern "C" __declspec(dllexport) void set(int);
extern "C" __declspec(dllexport) int get();
Run Code Online (Sandbox Code Playgroud)
TEST.CPP
extern int data=0;
__declspec(dllexport) void set(int num) {
data = num;
}
__declspec(dllexport) int get() {
return data;
}
Run Code Online (Sandbox Code Playgroud)
test.cs中
[DllImport("test")]
private static extern void set(int num);
[DllImport("test")]
private static extern int get();
Run Code Online (Sandbox Code Playgroud)
调用get()并set()正常工作(get()返回我传递给的数字set()).
现在,我知道您也可以导出C++类,但它是否必须进行管理?这是如何运作的?我是以正确的方式来做这件事的吗?
感谢你的帮助!
*** EDIT ***
首先,感谢您迄今为止的精彩答案!我总是对Stack Overflow印象深刻......
我想我应该更多地关注一件事,不一定是原始速度(这可以是原型和基准测试).让我更关心的一件事是垃圾收集器的非确定性行为.这个应用程序将不会在执行垃圾收集宽容500ms的延迟.
我只是编写代码并在纯C#中尝试这个,但如果我提前知道GC和任何其他非确定性的.NET行为(?)会导致问题,我认为我的时间会更好地用于编码C/C++并找出最好的C#接口.
加载种子数据的最佳方法?我有一个与Users表紧密耦合的Author表.我也有迁移来改变这两个表.我想添加一个默认的管理员用户,但我想确保在我的CreateDefaultAdmin(或其他)迁移运行之前创建了两个表并且已经为这些表运行了所有迁移.这样做有最好的做法吗?对不起,如果已经问过这个问题
我试图在Android手机上使用本机电子邮件客户端发送电子邮件.
我试过以下方法为邮件添加附件...
方法 - 1
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("image/jpeg");
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://sdcard/abc.jpg"));
Run Code Online (Sandbox Code Playgroud)
方法2
将图像作为正文内容发送---
sendIntent.putExtra(Intent.EXTRA_TEXT, "<HTML><BODY><b><IMG**SRC=
\"data:image/jpeg;base64," + <imagepath> + "\"**alt = \"**pleaseview this
image\"/></b></BODY></HTML>");
Run Code Online (Sandbox Code Playgroud)
我可以手动成功附加图像,但当我尝试附加并以编程方式发送它时,邮件是在没有附件的情况下发送的.
如果有办法使用电子邮件客户端以编程方式发送附件,请告诉我
使用以下代码:
char *name = malloc(sizeof(char) + 256);
printf("What is your name? ");
scanf("%s", name);
printf("Hello %s. Nice to meet you.\n", name);
Run Code Online (Sandbox Code Playgroud)
用户可以输入他们的名字,但是当他们输入一个像空格一样的名字时Lucas Aardvark,scanf()只需切断后面的所有内容Lucas.如何设置scanf()允许空格
我想从localhost获取会话列表.所以,我写道
session_start();
print_r($_SESSION);
Run Code Online (Sandbox Code Playgroud)
目前访问的人是两个.一个是来自另一台PC,最后一个是托管pc.But显示只有托管的pc会话.实际上我想得到所有会话用户列表.
我正在尝试从远程分支更新我的repo,并在我执行"git pull"时不断收到此错误.我没有做任何本地更改,即使我有,我也不需要保留它们.
我试过了:
git reset --hard
Run Code Online (Sandbox Code Playgroud)
而且我遇到了同样的问题
唯一似乎有效的是删除有问题的文件并再次尝试git pull.
我也试过git stash跟着一个git pull.不行.
编辑:使用PortableGit-1.6.4-preview20090729,所以任何以前的错误都应该修复.
使用Lucene处理同义词(短语)的最佳方法是什么?特别是,当我需要执行以下查询时:a OR b OR c NOT d
如何在编制索引时为每个文档添加一个名为"同义词"的新字段?该字段的值将包含所有同义词的列表.仅当该文档具有任何同义词时,才会将其添加到文档中.
然后,我将执行"OR"搜索查询,该查询将在此字段中查找搜索关键字以及其他字段.
这种方法可以适用于任何类型的查询吗?
仅供参考,我的应用程序中的同义词完全是自定义的,而不是来自英语词典...即."全球金融领袖"也可能意味着"顶级投资银行"或"财富500强金融公司"等.
请建议.
谢谢.
我们有一个约需要的ajax请求.30秒然后将用户发送到不同的页面.在此期间,我们当然会显示一个ajaxy微调器指示器,但浏览器也会"出现"卡住,因为浏览器客户端实际上并没有工作或显示它自己的加载消息.
是否有一种简单的方法可以告诉所有主流浏览器看起来忙于JS命令?
谢谢,乍得
我目前正在使用SQL Server 2008的Reporting Service,我认为用户界面不是很优雅.我想使用Silverlight作为用户界面来呈现报告服务后端数据.两个问题,
可能吗?Reporting Service公开Silverlight可以检索数据和呈现的接口?
我正在寻找一些很酷的演示,更好的免费源代码,它可以动态地显示不同类型的图表,基于某些数据源(例如报告服务)检索的数据的坐标曲线.
乔治,提前谢谢
sql sql-server silverlight sql-server-2008 reporting-services
我试图通过AudioQueue读取音频数据.当我这样做时,我可以验证文件的位深度是16位.但是当我得到实际的样本数据时,我只看到-128到128的值.但我也看到了可疑的交错数据,这让我非常确定我只是没有正确读取数据.
首先,我可以验证源文件是44100,16位单声道wav文件.
我的缓冲区是这样分配的:
char *buffer= NULL; buffer = malloc(BUFFER_SIZE); assert(buffer);
所有相关值均已设置并用于:
AudioFileReadPackets(inAudioFile,false,&bytesRead,NULL,packetNum,&numPackets,buffer);
作为测试,只是为了让我可以看到检索到的数据,我运行:
for(int i=0;i<BUFFER_SIZE;i++){
NSLog(@"%i", buffer[i]);
}
现在,我知道我的源文件到处都是峰值,但是我看到的值只有最大值为-128和128.由于这是一个16位文件,我希望这些值代之以-32768到32768.
此外,数据中似乎有两种模式.以下是返回数据的示例:
70 -13 31 -11 -118 -9 -15 -7 116 -4 31 -1 28 1 84 2 -123 3 -97 4 110 5 54 6 126
现在看一下从第二行开始的每一行:-13.看看它是如何增加的,而不是均匀的,但至少是顺利的?奇数行并不接近那些平滑的行.
我的第一个想法是这是交错的立体声数据,但不是,它只是一个通道,所以不应该有任何交错,对吧?
我最好的猜测是我只是错误地读取数据,因此样本数据跨越两个返回.知道如何正确阅读吗?
感谢您阅读整个问题,以及您可以提供的任何见解.
activerecord ×1
ajax ×1
android ×1
browser ×1
c ×1
c# ×1
c++ ×1
cocoa ×1
core-audio ×1
dll ×1
export ×1
git ×1
iphone ×1
javascript ×1
lucene ×1
lucene.net ×1
migration ×1
objective-c ×1
php ×1
printf ×1
scanf ×1
silverlight ×1
sql ×1
sql-server ×1
string ×1
whitespace ×1