Articles of c#

在电子中调用节点本地插件(C ++)

我对Node JS和Electron完全陌生。 我正在尝试使用Electron和Node JS将C ++与HTML集成。 我已经通过一些例子给出了: GIT 我想要做的是从我的网页的JavaScript电子加载调用本地函数(你好())。 我已经使用node-gyp configure来生成我的Visual Studio解决scheme文件。 ( .sln )。 之后,我使用Visual Studio 2013 Express编译了我的代码,在build \ Release文件夹中成功生成了我的.node文件。 这是我的index.js文件: var addon = require('./build/Release/hello.node'); console.log(addon.hello()); 当我简单地运行这个node index.js ,它给我所需的输出: world 但是当我使用电子时,问题就出现了。 我使用电子二进制(32位)来运行我的网页。 以下是我的main.js文件: var app = require('app'); // Module to control application life. var BrowserWindow = require('browser-window'); // Module to create native browser window. require('crash-reporter').start(); […]

Node.js原生插件中的枚举types

有没有可能创build一些enum在Node.js插件的C ++代码,然后公开这种types的JS代码? 我发现js中存在本地枚举types,但在v8引擎中没有关于它们的实现的信息。

* v8 :: String :: Utf8Value(args – > ToString())不会返回node.js addon参数的string

我发现* v8 :: String :: Utf8Value(args [0] – > ToString())返回节点0.8.2上的正确string32位,并且不返回节点0.8.8上的正确string64-位。 有人明白为什么吗? 我的node.js插件看起来像这样: #define BUILDING_NODE_EXTENSION #include <node.h> #define MAX_OUTPUT_BUF 80 extern "C" char *do_sqlsig(char *in); using namespace v8; Handle<Value> Sqlsig(const Arguments& args) { HandleScope scope; char *c_arg, *ret; if (args.Length() < 1) { ThrowException(Exception::TypeError(String::New("Wrong number of arguments"))); return scope.Close(Undefined()); } c_arg = *v8::String::Utf8Value(args[0]->ToString()); ret = c_arg; […]

将套接字服务器从Node.js移植到C#

我在Node.js中为多用户人工智能应用程序构build了多个套接字服务器应用程序。 我们正在寻找每个盒子1K到10K的活动sockets连接。 但是,即使空闲并且有0个活动连接,我的一些服务器在Unix上运行时也会消耗50-100 MB的内存。 我敢肯定,像C#或C ++这样的明智的平台,这应该是接近0 MB。 所以我们正在考虑把一个港口变成一个“更好”的平台。 现在让我澄清我的用例: 这不是一个“networking服务器”。 没有文件被送达。 我们做大量的CPU密集型数据处理,并且某些部分已经被移植到C ++,并通过本地模块进入节点。 我们不需要访问太多的I / O(在大多数情况下,访问一些文件,在某些情况下,没有,我们也不使用RDBMS) 我们去节点,因为它是Unix友好(不像.NET),似乎易于使用。 但是由于目前的内存消耗,我们需要评估其他选项。 许多人已经将Node.js与ASP.NET进行了比较,但我需要用C#或C ++构build套接字服务器。 我有与.NET和C ++的重要经验。 有像SuperSocket (由Redgate和Telerik使用)在.NET中处理所有低层次的东西的库。 我将不得不为C ++find一个类似的套接字框架。 所以把这一切放在一起,使用.NET或C ++优于Node.js有什么优势? 考虑到我的服务器高度受CPU限制(不受I / O限制),使用.NET / C ++的好处是显着的,还是应该坚持使用Node.js? 有关将Node.js应用程序移植到C#或C ++的其他意见? 赏金:我需要在C#和/或C ++中build议和推荐的套接字服务器库/实现/示例应用程序。 必须是开源的。 我需要它是高性能,asynchronous和无错的。 必须支持二进制数据传输。 必须在Windows上运行。 Unix是一个奖金。

最简单的方法(单行)从v8函数获取默认参数?

自从我使用C ++以来,已经有很长的一段时间了,甚至更长的时间,因为我把自己的头围绕在硬的types上。 我只是寻找一个工作class轮从v8获得参数,或者当一个参数没有提供时的默认值。 v8::String::Utf8Value arg0(args[0]); v8::String::Utf8Value arg1(args[1]); v8::String::Utf8Value arg2(args[2]); const char *username = (args.Length() > 0) ? *arg0 : ""; const char *password = (args.Length() > 1) ? *arg1 : ""; const char *service = (args.Length() > 2) ? *arg2 : "login"; 输出: FUNC(); // {用户名:“”,密码:“”,服务:“login”} FUNC( '1'); // {用户名:“1”,密码:“”,服务:“login”} func('1','2'); // {用户名:“1”,密码:“2”,服务:“login”} func('a','b','c'); // […]

C ++和JS程序之间的共享内存

我想在两种不同types的程序之间使用共享内存; C ++和JavaScript。 C ++程序应该写入内存,JS程序应该从同一块内存中同时读取。 可能吗?

.NET开发人员探索NodeJS,MongoDB,AngularJS和ExpressJS

我是C#.NET开发人员,我用来构buildWeb应用程序的工具是: SQL Server entity framework .NET Web API ASP.NET MVC HTML / CSS / jQuery的 我一直在阅读AngularJS,NodeJS,MongoDB和ExpressJS,看起来这些“Javascript-ish”技术,你可以build立一个完整的Web应用程序。 我的问题是,这使我对.NET堆栈的知识有了什么? 我想开始拥抱这些新技术,并与他们build立我的下一个网站,然而,我很困惑,我是否应该彻底取消.NET堆栈,或者如果我应该用这个function补充这些新技术。 NET堆栈,它可能是有道理的。 这是我的一些想法: MongoDB可以替代SQL Server和Entity Framework AngularJS几乎可以取代ASP.NET MVC(因为两者都是MVC模式,两者都是多余的,我想) 但是当涉及到构buildAPI层时,NodeJS是否会完全取代ASP.NET Web API? 或者我可以一起使用它们吗? 什么会最有意义(一般来说)? 考虑到像MongoDB这样的NoSQL数据库有类似JavaScript的语法,我们甚至需要服务器端的API吗? 客户(理论上)不能直接与数据库交谈吗? ExpressJS适合哪里? 我希望有人能够帮助澄清这些技术是如何相互融合的。 很确定很多想要探索这些新技术的.NET开发人员都有同样的问题。

从node.js中的扫描图像评估checkbox

我想评估checkbox被选中或不是从扫描的图像。 我find了像node-dv和node-fv这样的节点模块。 但是,当安装这个我得到了以下错误在Mac上。 ../deps/opencv/modules/core/src/arithm1.cpp:444:51: error: constant expression evaluates to 4294967295 which cannot be narrowed to type 'int' [-Wc++11-narrowing] static int CV_DECL_ALIGNED(16) v64f_absmask[] = { 0xffffffff, 0x7fffffff, 0xffffffff, 0x7fffffff }; ^~~~~~~~~~ ../deps/opencv/modules/core/src/arithm1.cpp:444:51: note: insert an explicit cast to silence this issue static int CV_DECL_ALIGNED(16) v64f_absmask[] = { 0xffffffff, 0x7fffffff, 0xffffffff, 0x7fffffff }; ^~~~~~~~~~ static_cast<int>( ) ../deps/opencv/modules/core/src/arithm1.cpp:444:75: […]

node.js使用cocoa框架的插件

我想用cocoa中提供的一些c ++框架在node.js插件系统中使用。 比如说,如果你不能在node.js插件中使用cocoa框架,你将如何在mac上的node.js的OS级别获得鼠标位置。 如果有一种方法可以联系起来,有人可以提供帮助,如何做到这一点?

用于C#的类似V8的哈希表?

我正在编程一个公寓和房屋租赁网站。 由于不会有超过10'000个物业出租,把所有物品都存入记忆体是没有问题的。 现在,当用户想要search特定的一个,他可以定义非常多的价格,房间,自动扶梯等filter。 每个属性都有一组非常不同的属性。 一个属性可能具有另一个属性不具有的属性。 所以,在C#中创build一个具有所有属性的类,而仅使用其中一些属性对我来说不是一个好主意。 我决定使用一个字典来代替。 稍后的一些基准testing中,我发现,Dictionary作为一个类访问属性的速度要慢大约40倍。 我也做了一个node.js的基准,它只是用对象作为字典。 这是非常有趣的,因为node.js中完全相同的程序比使用本地类的C#示例执行得更好。 其实我得到了以下结果: C#字典:〜820ms C#类:〜26ms Node.js对象:〜24ms 每个基准都按照相同的标准search1000万个物体。 我知道,由于Google的V8引擎,Node.js版本非常快。 你知道是否有一个C#类使用与V8引擎类似的技术,并获得几乎相同的性能? C#字典基准 namespace Test { class Program { static void Main(string[] args) { PropertyList p = new PropertyList(); long startTime = DateTime.Now.Ticks; for (int i = 0; i < 100; i++) { p.Search(); } Console.WriteLine((DateTime.Now.Ticks – startTime) / 10000); […]