NW.js坑坑坑
最近想做个跨平台的玩意儿,一直听说 nodejs 大法好,node webkit(现在改名NW.js)跨平台开发炒鸡屌。看了各种介绍和资料,的确不错的样子。于是开工_(:з」∠)_
我需要调用一个第三方的 Dll,之前确认过 nodejs 可以通过 ffi 调用动态链接库,应该不是问题。
装上最新版 nodejs,使用 npm 安装 nw、ffi,期间提示我需要 node-gyp,装上这货还需要 python 2.7 和 VS 2013,要求真多。
在 chromium 的 Console 尝试调用 ffi,第一个问题就来了。如图:
这是什么鬼?根本没有具体的错误信息。难道是我编译的姿势不对?重新翻 node-gyp 的说明,发现还需要安装 windows SDK,以及在 64 位系统可能还需要打一个什么补丁。
照做之后在重新编译 ffi 的时候又报错,找不到 ammintrin.h,搜索之后发现 VS 打某个补丁就会丢失这个玩意儿,找到之后加回去。继续编译……
又抛出一大坨奇奇怪怪的错误,再滚回 node-gyp 发现这句话“If the install fails, try uninstalling any C++ 2010 x64&x86 Redistributable that you have installed first”。我愚蠢的相信了,卸载的时候提示 QQ 进程占用无法卸载,杀了 QQ 卸载完发现连 QQ 都打不开,能不能别这么坑(╯—﹏—)╯( ┷━━━┷
重新装上,继续编译,又报这个神奇的错误:
jpg 有点糊,路径里文件夹是 V110,VS 2013应该是V120,怎么会去找 VS 2012 的路径?此时系统已经安装、卸载一大坨补丁,估计是环境乱作一团了。
无奈只好重装系统重新来_(:з」∠)_
这次重新看 NW.js 的版本说明里有一句 based off of IO.js v1.2.0,才恍然大悟也许需要用对应的 IO.js 版本才行。
先不着急捣鼓 NW,用 IO.js 确认 ffi 调用 Dll 工作正常,感觉这次有戏,继续安装 NW。结果……
嗯?版本号?这时候才想明白,NW.js 本身内置了 IO.js,所以大概需要用对应版本的 IO.js 才行。
用相同版本的 IO.js 再来一次,这次是这样的:
(╯‵□′)╯︵┻━┻这不是第一张图么?为什么回到原点了!
接着查资料,才知道需要用 nw-gyp 手工编译对应版本的 ffi。
行行行都听你的,继续重编译 ffi,又一次抛我一脸错误。
语法错误不应该啊?再仔细看 nw-gyp 的要求说明,我天真的以为这货就是分叉版的 node-gyp,没想到它分叉早了,要求 VS 2012!!
不想继续装VS2012。彻底放弃_(:з」∠)_
nodejs 是个坑,分叉出 IO.js 之后各个版本号更是乱,像图2里版本号用的是 43/44,完全不知道对应的 nodejs 或者 IO.js 版本。
还是继续老老实实写php吧_(:з」∠)_浪费两天时间。
目测要用这个东西开发,需要翻一遍源码的样子 OAQ!
nodejs各种未完善,各种无爱……
不错,路过看看。
你需要 Linux/Unix/OS X 作為開發環境……
我需要开发一个跨平台客户端,win版本需要第三方dll支持,所以必需在win开发
表示已经误入Node坑了 呜呜
入得太深出不来了…
(((o(*゚▽゚*)o))) php别打我呀
在这里也看见你233333
厉害
Java 大法好。
#include
#include
using namespace std;
int cmp(int a,int b)
{
if (a==b)return 1;
if (abs(a-b)==1)return 2;
if (abs(a-b)>1)return 3;
}
int main()
{
int a[4]={0},b[4]={0},n,m=1;
cin>>n;
for (int i=0;i>a[i]>>b[i];
}
int answer[2];
answer[0]=a[0];
answer[1]=b[0];
for (int i=1;i<n;i++)
{
if (cmp(answer[1],b[i])==1)
{
answer[0]+=a[i];
}
else if (cmp(answer[1],b[i]==2))
{
answer[0]=a[i]*answer[1]+answer[0]*b[i];
answer[1]*=b[i];
}
else if (cmp(answer[1],b[i])==3)
{
answer[1]=answer[1]*b[i];
answer[0]+=answer[0]*answer[1]+a[i]*b[i];
int m=1;
int temp=answer[0]/answer[1];
for (int j=1;j<=temp;j++)
{
if ((answer[1]%j==0)&&(answer[0]%j==0))
{
m=j;
}
}
answer[1]=answer[1]/m;
answer[0]=answer[0]/m;
}
}
m=1;
for (int j=1;j<=1000;j++)
{
if ((answer[1]%j==0)&&(answer[0]%j==0))
{
m=j;
}
}
answer[1]/=m;answer[0]/=m;
if(answer[1]==1){
cout<<answer[0];
}else if(answer[1]==answer[0]){
cout<<'1';
}else{
cout<<answer[0]<<'/'<<answer[1];
}
return 0;
}
新喵 借我放下。。。
可以试试 electron
Electron 大法好
不明觉历法好。
是有多坑啊?哈哈
跨平台开发 社区不稳 分支多 惹惹惹
NW.js真心好用。
虽然坑点很多。但是跨平台GUI界从来没有这么大的变革了(上次大概是Qt吧)。
不管从哪个角度我都是看好的。
叫你不用 Linux ……