EvenAR / node-simconnect

A cross platform SimConnect client library for Node.JS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

node-simconnect Does not compile for Electron

kdlovell opened this issue · comments

Hello,

I cloned the master branch and was able to successfully compile node-simconnect as a 64bit module against the P3D V5 SDK. I tested it and it worked perfectly!

I then tried to rebuild node-simconnect for Electron and ran into a slew of errors.
nodejs version = 12.6.2
electron version = 8.2.4

Admittedly, this is my venture into node js and electron so I may be making a newbie mistake. I used the following command: .\node_modules.bin\electron-rebuild

Log is here:
https://pastebin.com/Mf77u5PJ

Thanks!

@kdlovell Did you fix that? I have a similar problem.

Here, I receive this error: addon.obj : error LNK2001: unresolved external symbol _SimConnect_Open@24

Someone can help? @EvenAR

I have the same error. Would love to hear a solution.

My error: https://pastebin.com/EkpLG9Xg

I have a very similar issue as @jgbijlsma

Did the owner abandon this project? I've tried to fix the addon.cc file, but I'm just not familiar enough with C++. I found a solution to the cannot convert from 'v8::MaybeLocal<v8::String>' to 'v8::Local<v8::String>' problem, but the Get and Set functions are blowing up and any of the darts I've thrown at the wall don't seem to work (shooting in the dark on those because again... not a C++ programmer).

@EvenAR

@kdlovell @jgbijlsma @josehfortes @EvenAR

I've done some work on the addon.cc file to update it for electron version 10. Note that this will break non-electron projects, and won't work with "rebuild" but instead needs to be built specifically for electron (I used the electron-rebuild package). There are still many functions not incorporated into this library, but it's a good starting point. Just replace the contents of your addon.cc file with this one.

https://gist.github.com/westlakem/17910065569d21066d038667537e48ee

Hope this helps!

I'm sorry for not being very helpful here. Thanks a lot for sharing your solution, @westlakem 👍

FYI I have started on a major refactoring which will be based on the node-addon-api. It will no longer depend directly on v8 and nan, which will make the code easier to maintain.

No problem @EvenAR, I'm thankful for your job on this project.

Thanks @westlakem for your help! I appreciate that.

@EvenAR glad to hear you're continuing to work on this project! Do you have an estimated release date for that refactor? Trying to determine for my project if it's worth putting in the time on the current version or if I should just focus on other parts. If you need a beta tester let me know!

commented

Just attempted this. I am glad to hear work is continuing on this project!

$ npm run make

> electron-webview@1.0.6 make C:\Users\USERNAME\Desktop\Virtual_Airline\VirtualAirlineClient
> electron-forge make

- Checking your system
√ Checking your system
- Resolving Forge Config
√ Resolving Forge Config
We need to package your application before we can make it
- Preparing to Package Application for arch: ia32
√ Preparing to Package Application for arch: ia32
- Preparing native dependencies
Building the projects in this solution one at a time. To enable parallel build, please add the "-m" switch.
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(499,5): warning MSB8029: The Intermediate directory or Output directory cannot reside under the Temporary directory as it could lead to issues with incremental build. [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
  addon.cc
  win_delay_load_hook.cc
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\10.1.2\include\node\v8.h(9113,39): warning C4996: 'v8::MicrotasksCompletedCallback': Use *WithData version. (compiling source file ..\src\addon.cc) [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\10.1.2\include\node\v8.h(9121,42): warning C4996: 'v8::MicrotasksCompletedCallback': Use *WithData version. (compiling source file ..\src\addon.cc) [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(207,82): error C2440: 'initializing': cannot convert from 'v8::MaybeLocal<v8::String>' to 'v8::Local<v8::String>' [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(207,82): message : No constructor could take the source type, or constructor overload resolution was ambiguous [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(209,4): warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(211,32): error C2661: 'v8::Object::Set': no overloaded function takes 2 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(215,72): error C2440: 'initializing': cannot convert from 'v8::MaybeLocal<v8::String>' to 'v8::Local<v8::String>' [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(215,72): message : No constructor could take the source type, or constructor overload resolution was ambiguous [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(216,32): error C2661: 'v8::Object::Set': no overloaded function takes 2 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(227,99): error C2661: 'v8::Object::Set': no overloaded function takes 2 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(235,45): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(256,40): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(280,42): error C2440: 'initializing': cannot convert from 'v8::MaybeLocal<v8::String>' to 'v8::Local<v8::Value>' [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(280,42): message : No constructor could take the source type, or constructor overload resolution was ambiguous [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(282,15): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(293,41): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(301,97): error C2661: 'v8::Object::Set': no overloaded function takes 2 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(302,91): error C2661: 'v8::Object::Set': no overloaded function takes 2 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(303,89): error C2661: 'v8::Object::Set': no overloaded function takes 2 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(304,79): error C2661: 'v8::Object::Set': no overloaded function takes 2 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(305,95): error C2661: 'v8::Object::Set': no overloaded function takes 2 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(306,136): error C2661: 'v8::Object::Set': no overloaded function takes 2 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(310,40): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(318,67): error C2440: 'initializing': cannot convert from 'v8::MaybeLocal<v8::String>' to 'v8::Local<v8::Value>' [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(318,67): message : No constructor could take the source type, or constructor overload resolution was ambiguous [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(320,42): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(334,47): error C2440: 'initializing': cannot convert from 'v8::MaybeLocal<v8::String>' to 'v8::Local<v8::Value>' [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(334,47): message : No constructor could take the source type, or constructor overload resolution was ambiguous [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(336,35): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(344,91): error C2661: 'v8::Object::Set': no overloaded function takes 2 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(345,86): error C2661: 'v8::Object::Set': no overloaded function takes 2 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(346,89): error C2661: 'v8::Object::Set': no overloaded function takes 2 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(349,35): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(355,35): warning C4996: 'Nan::Callback::Call': was declared deprecated [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(656,73): error C2661: 'v8::Object::Get': no overloaded function takes 1 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(656,46): error C2672: 'v8::Local<v8::Array>::Cast': no matching overloaded function found [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(664,58): error C2661: 'v8::Object::Get': no overloaded function takes 1 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(664,92): error C2664: 'v8::String::Utf8Value::Utf8Value(const v8::String::Utf8Value &)': cannot convert argument 1 from 'v8::Isolate *' to 'const v8::String::Utf8Value &' [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(664,92): message : Reason: cannot convert from 'v8::Isolate *' to 'const v8::String::Utf8Value' [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(664,92): message : No constructor could take the source type, or constructor overload resolution was ambiguous [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\10.1.2\include\node\v8.h(3309,5): message : see declaration of 'v8::String::Utf8Value::Utf8Value' (compiling source file ..\src\addon.cc) [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(668,8): error C2661: 'v8::Object::Get': no overloaded function takes 1 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(670,59): error C2661: 'v8::Object::Get': no overloaded function takes 1 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(670,93): error C2664: 'v8::String::Utf8Value::Utf8Value(const v8::String::Utf8Value &)': cannot convert argument 1 from 'v8::Isolate *' to 'const v8::String::Utf8Value &' [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(670,93): message : Reason: cannot convert from 'v8::Isolate *' to 'const v8::String::Utf8Value' [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(670,93): message : No constructor could take the source type, or constructor overload resolution was ambiguous [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\10.1.2\include\node\v8.h(3309,5): message : see declaration of 'v8::String::Utf8Value::Utf8Value' (compiling source file ..\src\addon.cc) [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(689,26): error C2661: 'v8::Object::Get': no overloaded function takes 1 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(700,28): error C2661: 'v8::Object::Get': no overloaded function takes 1 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(710,28): error C2661: 'v8::Object::Get': no overloaded function takes 1 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(749,91): error C2661: 'v8::Object::Get': no overloaded function takes 1 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(750,91): error C2661: 'v8::Object::Get': no overloaded function takes 1 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(751,92): error C2661: 'v8::Object::Get': no overloaded function takes 1 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(752,92): error C2661: 'v8::Object::Get': no overloaded function takes 1 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(753,89): error C2661: 'v8::Object::Get': no overloaded function takes 1 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(754,90): error C2661: 'v8::Object::Get': no overloaded function takes 1 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(755,91): error C2661: 'v8::Object::Get': no overloaded function takes 1 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\src\addon.cc(756,91): error C2661: 'v8::Object::Get': no overloaded function takes 1 arguments [C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect\build\node-simconnect.vcxproj]
× Preparing native dependencies: 0 / 1

An unhandled error has occurred inside Forge:
node-gyp failed to rebuild 'C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect'.
Error: `C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe` failed with exit code: 1


Error: node-gyp failed to rebuild 'C:\Users\USERNAME\AppData\Local\Temp\electron-packager\win32-ia32\Virtual-Airline-Client-win32-ia32\resources\app\node_modules\node-simconnect'.
Error: `C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe` failed with exit code: 1


    at ModuleRebuilder.rebuildNodeGypModule (C:\Users\USERNAME\Desktop\Virtual_Airline\VirtualAirlineClient\node_modules\electron-rebuild\src\module-rebuilder.ts:186:13)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! electron-webview@1.0.6 make: `electron-forge make`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the electron-webview@1.0.6 make script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\USERNAME\AppData\Roaming\npm-cache\_logs\2020-10-06T17_39_00_875Z-debug.log

Subscribing - also looking for a solution to build this against latest electron.

@EvenAR is the refactor branch supposed to work for building with electron on x64? I'm getting an error simconnect_session.cc(398,27): error C2397: conversion from 'unsigned __int64' to 'uint32_t' requires a narrowing conversion

What is the current way to get it working for electron x64? Using @westlakem addons.cc mod? Using that and after either rebuilding with node-gyp or with electron-rebuild no matter I get an error saying the module was built against node 82 but is expected to be built for node v72. Using latest electron 10.1.4.

Thanks for any advice!

[EDIT]
Sorry, I was running my test.js from local node and not from electron. It works using @westlakem's fix.

I'm failing to get node-simconnect build and running for electron with the master branch. I'm now trying the refactor branch, but I get the following errors:

(the main problem seems to be d:\coding\simcareer-electron\node_modules\node-simconnect-refactor\src\simconnect_session.cc(434): error C2397: conversion from 'unsigned __int64' to 'unsigned i
nt' requires a narrowing conversion [D:\coding\simcareer-electron\node_modules\node-simconnect-refactor\build\node_simconnect.vcxproj])

$ HOME=~/.electron-gyp node-gyp rebuild --target=11.0.3 --arch=x64 --msvs_version=2017 --dist-url=https://electronjs.org/headers
gyp info it worked if it ends with ok
gyp info using node-gyp@7.1.2
gyp info using node@12.18.4 | win32 | x64
gyp info find Python using Python version 2.7.15 found at "C:\Users\jbijl.windows-build-tools\python27\python.exe"
gyp info find VS using VS2017 (15.9.28307.1300) found at:
gyp info find VS "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools"
gyp info find VS run with --verbose for detailed information
gyp info spawn C:\Users\jbijl.windows-build-tools\python27\python.exe
gyp info spawn args [
gyp info spawn args 'C:\Users\jbijl\AppData\Roaming\npm\node_modules\node-gyp\gyp\gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info spawn args '-f',
gyp info spawn args 'msvs',
gyp info spawn args '-I',
gyp info spawn args 'D:\coding\simcareer-electron\node_modules\node-simconnect-refactor\build\config.gypi',
gyp info spawn args '-I',
gyp info spawn args 'C:\Users\jbijl\AppData\Roaming\npm\node_modules\node-gyp\addon.gypi',
gyp info spawn args '-I',
gyp info spawn args 'C:\Users\jbijl\AppData\Local\node-gyp\Cache\11.0.3\include\node\common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=C:\Users\jbijl\AppData\Local\node-gyp\Cache\11.0.3',
gyp info spawn args '-Dnode_gyp_dir=C:\Users\jbijl\AppData\Roaming\npm\node_modules\node-gyp',
gyp info spawn args '-Dnode_lib_file=C:\\Users\\jbijl\\AppData\\Local\\node-gyp\\Cache\\11.0.3\\<(target_arch)\\node.lib',
gyp info spawn args '-Dmodule_root_dir=D:\coding\simcareer-electron\node_modules\node-simconnect-refactor',
gyp info spawn args '-Dnode_engine=v8',
gyp info spawn args '--depth=.',
gyp info spawn args '--no-parallel',
gyp info spawn args '--generator-output',
gyp info spawn args 'D:\coding\simcareer-electron\node_modules\node-simconnect-refactor\build',
gyp info spawn args '-Goutput_dir=.'
gyp info spawn args ]
←[37;40mgyp←[0m ←[0m←[32minfo←[0m ←[0m←[35mspawn←[0m C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe
←[0m←[37;40mgyp←[0m ←[0m←[32minfo←[0m ←[0m←[35mspawn args←[0m [
←[0m←[37;40mgyp←[0m ←[0m←[32minfo←[0m ←[0m←[35mspawn args←[0m 'build/binding.sln',
←[0m←[37;40mgyp←[0m ←[0m←[32minfo←[0m ←[0m←[35mspawn args←[0m '/clp:Verbosity=minimal',
←[0m←[37;40mgyp←[0m ←[0m←[32minfo←[0m ←[0m←[35mspawn args←[0m '/nologo',
←[0m←[37;40mgyp←[0m ←[0m←[32minfo←[0m ←[0m←[35mspawn args←[0m '/p:Configuration=Release;Platform=x64'
←[0m←[37;40mgyp←[0m ←[0m←[32minfo←[0m ←[0m←[35mspawn args←[0m ]
←[0mBuilding the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
simconnect_session.cc
d:\coding\simcareer-electron\node_modules\node-simconnect-refactor\src\simconnect_session.cc(434): error C2397: conversion from 'unsigned __int64' to 'unsigned i
nt' requires a narrowing conversion [D:\coding\simcareer-electron\node_modules\node-simconnect-refactor\build\node_simconnect.vcxproj]
←[37;40mgyp←[0m ←[0m←[31;40mERR!←[0m ←[0m←[35mbuild error←[0m
←[0m←[37;40mgyp←[0m ←[0m←[31;40mERR!←[0m ←[0m←[35mstack←[0m Error: C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe failed with exit code: 1
←[0m←[37;40mgyp←[0m ←[0m←[31;40mERR!←[0m ←[0m←[35mstack←[0m at ChildProcess.onExit (C:\Users\jbijl\AppData\Roaming\npm\node_modules\node-gyp\lib\build.js:194:23)
←[0m←[37;40mgyp←[0m ←[0m←[31;40mERR!←[0m ←[0m←[35mstack←[0m at ChildProcess.emit (events.js:315:20)
←[0m←[37;40mgyp←[0m ←[0m←[31;40mERR!←[0m ←[0m←[35mstack←[0m at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)
←[0m←[37;40mgyp←[0m ←[0m←[31;40mERR!←[0m ←[0m←[35mSystem←[0m Windows_NT 10.0.19041
←[0m←[37;40mgyp←[0m ←[0m←[31;40mERR!←[0m ←[0m←[35mcommand←[0m "C:\Program Files\nodejs\node.exe" "C:\Users\jbijl\AppData\Roaming\npm\node_modules\node-gyp\bin\node-gyp.js" "rebuild" "--target=11.0.3" "--arch=x64" "--msvs_version=2017" "--dist-url=https://electronjs.org/headers"
←[0m←[37;40mgyp←[0m ←[0m←[31;40mERR!←[0m ←[0m←[35mcwd←[0m D:\coding\simcareer-electron\node_modules\node-simconnect-refactor
←[0m←[37;40mgyp←[0m ←[0m←[31;40mERR!←[0m ←[0m←[35mnode -v←[0m v12.18.4
←[0m←[37;40mgyp←[0m ←[0m←[31;40mERR!←[0m ←[0m←[35mnode-gyp -v←[0m v7.1.2
←[0m←[37;40mgyp←[0m ←[0m←[31;40mERR!←[0m ←[0m←[35mnot ok←[0m
←[0m

@jgbijlsma could you try the refactor branch again now? e745f99 should have fixed the problem.

commented

@EvenAR Unfortunately, Im also struggling to make this library work with electron. Compiling works, but I get this error when running the app:
image

Steps to reproduce:

  • Clone Electron Quickstart: https://github.com/electron/electron-quick-start
  • npm install
  • npm install electron-rebuild
  • npm install evenar/node-simconnect#refactor
  • go to node_modules/node-simconnect and run npm install
  • Create SimConnect folder with contents
  • go to project root, run .\node_modules\.bin\electron-rebuild.cmd
  • modify main.js:
    image
  • npm start
commented

@riccardolardi Thanks for your response. That didn't help unfortunately. Do you have an electron app working?

@megasus yes, and I remember I solved a similar JS error by installing the redistributables. Not sure anymore though about the exact error message so it might have been another case. You can check my code here if it helps: https://github.com/riccardolardi/fsmaptool-server

commented

@riccardolardi You are using x64 architecture, right? What version of simconnect did you use? The x64 Prepar3d version? I'm trying to compile your app against ia32 with 32bit node, but I get exactly the same errors compared to my demo app.

@megasus this works for me using the latest beta and Electron 11.0.5:

  1. Create a basic Electron project based on: https://www.electronjs.org/docs/tutorial/quick-start
  2. From the project root directory run
    npm install --save node-simconnect@beta
    cd node_modules/node-simconnect
    # Install dev-dependencies:
    npm install
    mkdir SimConnect/inc SimConnect/lib
    
  3. Copy the FSX Steam Edition SDK files to their respective lib/inc-folders
  4. Run HOME=~/.electron-gyp node-gyp rebuild --target=11.0.5 --arch=ia32 --dist-url=https://electronjs.org/headers
  5. Import the module in main.js:
    const { SimConnect } = require("node-simconnect")

I'm closing this as the new version works natively with Electron.