나 C++로 작성된 의미 또는 CVM에서 원시 함수를 호출하는 방법은 무엇입니까? 기본으로
난에, 프로그래밍 언어 기반으로 자바를 만들고있어 그것이 VM 바이트 코드 컴파일러 언어를 가지고있다. 그래서 언어의 기능, 같은 for
루프, 변수, 산술 및 구현
는 나에게 문제가되지 않습니다; 그러나 Java와 같은 기본 기능을 실행할 수 있습니다.
나는 나의 언어로 작성된 프로그램은 하드웨어와 OS와 윈도우, 인터페이스를 생성하는 것이 가능하게하기 위해 기본 기능을해야하고, 단순한 수학 아니다 무엇이든 할.나는 JNI에 대해 들어 봤는데, 분명히 내가 좋아할만한 것으로 보이지만, 그런 식으로 구현하는 방법을 모르겠습니다. 내 VM으로
는 C++로 구현, 내가 컴파일 시간에 그것을 내 기본 기능#include
HPP 파일이있을 수 있으며, 다음 동적
dll
년대 또는
so
's을 (를)로드 할 수 있다는 것을 알고 있지만,이'아무튼 다른 원시 기능을 실행할 수 있기를 원할 때마다 VM을 다시 컴파일해야하기 때문에 실제로는 좋은 솔루션처럼 보입니다.
문제는 다음과 같습니다. C++ 프로그램 (VM)은 동적으로 (런타임에서 바이트 코드의 지시에 따라)보다 정확하게 C++ 함수로 라이브러리를로드 한 다음 해당 함수를 실행하지 않고 그 함수를 실행할 수 있습니까? 일부 헤더 파일에서 미리 선언 되었습니까?
원하는 코드 샘플을 제공해 주시겠습니까? –
Windows에서 LoadLibrary() 및 GetProcAddress()를 사용합니다. Linux는 다른 이름과 동일한 기능을합니다. 이것들은 인자와 반환 값의 수와 타입을 숫자로 알기는 어렵습니다. –
@BhavikAmbani 물론, 몇 시간 후에 집에가 자마자. – corazza