상세 컨텐츠

본문 제목

Electron FFI 테스트 샘플 (MFC 기반에 C++ DLL 호출)

code/electron.js

by goldtagworks 2023. 10. 27. 16:07

본문

반응형

 

참고한 소스는 64비트 기반에 순수 Electron (html / javascript 기반) 예제라서

현재 진행하려는 방향으로 테스트 하려면 수정이 필요하다.

 

✔ Electron 개발 환경을 32 비트 로 변환 이를 위해서 NodeJS를 32비트 버젼으로 변경

 

    1. Vue를 사용하지 않는 환경이라면 FFI 사용이 쉬운듯 하다.

    2. 실행되는 위치와 DLL의 경로때문에 정상적으로 실행되지 않는다. (일단 절대경로로 지정)

    3. 1번에서 설명했듯 Vue 환경에서 FFI를 사용하면 bindings.js getfilename 에서 에러가 발생한다.

        이것때문에 시간을 많이 허비했는데 vue.config.js를 참고하면 된다.

    4. 결과를 놓고 설명하면 NodeJS가 64비트 환경일때 Electron 개발 환경을 32 비트로 구축하려면

       환경변수 하나를 설정하면된다. (set npm_config_arch=ia32)

    5. 그러나 FFI rebuild 를 하면 64비트가 설치된다.

    6. 이를 해결하기 위해 이틀정도 소요하였지만 가장 깔끔한 방법은 역시 NodeJS를 32비트로

 

✔ html / javascript 코드를 Vue + Typescript 코드로 컨버팅

    - 이건 알아서

참고소스: https://github.com/wzdxy/electron-ffi-demo

 

코드를 실행해보면 C++ DLL 연동은 깔끔하게 된다.

다음 스탭은 javascript 에 콜백함수를 C++에 DLL 로 넘겨 콜백받는것.

 

✔ 이후 추가 NodeJS를 굳이 32비트 버젼으로 설치 안해도 된다.

    - electron-builder 에 빌드 옵션을 32비트로 주면된다.

 

반응형

'code > electron.js' 카테고리의 다른 글

IPCServiceBase  (0) 2024.07.10
electron ipcRenderer -> ipcMain  (0) 2024.07.10
Electron 용 DLL 제작시 주의사항  (0) 2023.10.27
Electron FFI 테스트 추가 테스트 한 부분  (0) 2023.10.27

관련글 더보기