electron 통합 node-ffi 호출 dll 구덩이 밟기 기록

2082 단어 nodeelectron
환경 구성:
npm>=8.9 electron 전역 및 패키지.json은 일치해야 한다
64비트 시스템에서 32비트 dll을 실행할 때 node와python 2.7,electron은 모두 32자리여야 한다.실제 사용 과정에서 모든 것을 32자리로 자른 후에 노드는 64자리로 바뀌었는데 영향이 없었다.
 
오류: Error: A dynamic link library(DLL) initialization routine failed.
해결 방안:electron과 node-ffi를 다시 build로 하면 보통 rebuild에서 ffi를 사용하면 문제를 해결할 수 있습니다.
두 가지 방법:
1: 모듈의 현재 디렉터리 아래에서 실행해야 합니다. 그렇지 않으면 bindings 파일 node-gyp rebuild --target=1.6.2 -arch=x64 -dist-url=를 찾을 수 없습니다.https://npm.taobao.org/mirrors/atom/32자리면 8.9의 32자리로 바꾸고 node-gyp rebuild--target=1.6.2 --arch=ia32 --runtime=electron --dist-url=https://npm.taobao.org/mirrors/atom/
2:rebuild을 다시 컴파일할 수도 있습니다.ode_modules\.bin\electron-rebuild .ode_modules\ffi\
 
오류 보고: Uncaught Error:%1 is not a valid Win32 application.
해결 방안: dll 호출과 관련된 dll을 찾지 못합니다.ffi의 library path는 시스템이 지정한 것이기 때문에 스스로 교체하는 것을 권장하지 않습니다.이 기본 위치는exe가 시작하는 경로입니다
예를 들어 node를 사용하세요.exe가 시작되면 경로가 node입니다.exe의 디렉터리입니다. 이 때 관련 dll은 node에 넣어야 합니다.exe 디렉터리에 있습니다.electron은 같은 이치로 작동하여 electron에 넣습니다.exe 아래에서 찾을 수 있는 위치입니다.
 
오류 보고: was compiled against a different Node.js version using NODE_MODULE_VERSION 53.  This version of Node.js requires NODE_MODULE_VERSION 54.
솔루션: 버전이 일치하지 않습니다.rebuild을 실행합니다./node_modules/.bin/electron-rebuild
 
오류 보고: Dynamic Linking Error: Win32 error 193
Dynamic Linking Error: Win32 error 126
솔루션: Windows 오류 코드 전체를 검색하십시오.
0193 %1       Win32     

dll 파일, dll 경로를 인용하지 않은 경우가 많습니다.
0126         

 
ffi 등록 완료 인용 방법 매개 변수, node-ffi 전송값
C/C++가 void로 되돌아올 때 int32 또는 void를 사용할 수 있습니다.
리셋 함수를 가져올 때 형식은pointer입니다.
char* 및 wchar* 유형은string
 
비동기 호출이 동기 호출보다 더 많은 매개 변수
//동기화 호출 예제 const result = dll.My_Test('hello', 3, 2)
//비동기 호출 예시 dll.My_Test.async('hello', 3, 2, (err, result) => {     if(err) {        //todo     }     return result })
 
electron 호출 dll은 주 프로세스에 있어야지 렌더링 프로세스에 있어서는 안 됩니다. 그렇지 않으면 리셋 함수가 동작하지 않을 수 있습니다
 
 
 

좋은 웹페이지 즐겨찾기