快速C程序,C#GUI,可能吗?

我正在研究开发一个应用程序,将处理来自线扫描相机的数据在大约2000线(帧)每秒。对于这个实时应用程序,我觉得C / C是要走的路。 (这是我的感觉,其他人会同意,管理代码只是不适合这个任务。)

但是,我做了很少的MFC或任何其他C GUI。我真的得到做的C#GUIs很好,虽然。

因此,我认为在C / C中编写数据密集型代码和在C#中使用GUI是很自然的。 GUI将用于设置/校准/在线监视(并且可能通过UDP输出数据,因为它在C#中更容易。

所以首先,我想看看是否有人同意这将是一条路。基于我的编程经验(良好的低级C算法和高级C#GUI设计),它只是感觉正确。

第二,我不知道正确的方法去。我只是把一个解决方案在VS2005,它调用一些(extern“C”)DLL函数从C#应用程序。为了确保我能做到这一点,我写了一些DLL中的全局变量,并从中读取:

test.h

int globaldata;
extern "C" __declspec(dllexport) void set(int);
extern "C" __declspec(dllexport) int  get();

test.cpp

extern int data=0;
__declspec(dllexport) void set(int num) {
    data = num;
}

__declspec(dllexport) int get() {
    return data;
}

test.cs

[DllImport("test")]
private static extern void set(int num);

[DllImport("test")]
private static extern int get();

调用get()和set()正常工作(get()返回我传递给set()的数字。

现在,我知道你可以导出一个C类,但它是否必须进行管理?如何工作?我要谈这个正确的方法吗?

感谢你的帮助!

***编辑***

首先,谢谢你迄今为止的梦幻般的答案!我总是令人难以置信的印象深刻的Stack Overflow …

我想有一件事我应该打更多,不一定原始速度(这可以原型和基准)。我更关心的一件事是垃圾收集者的非确定性行为。此应用程序在执行垃圾收集时不会容忍500毫秒的延迟。

我所有的编码和尝试这在纯C#,但如果我提前的时间,GC和任何其他非确定性的.NET行为(?)将导致问题,我认为我的时间会更好地花编码C / C和找出最好的C#接口。

http://stackoverflow.com/questions/1247968/fast-c-program-c-sharp-gui-possible

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:快速C程序,C#GUI,可能吗?