본문 바로가기

NPRuntime

NPRuntime 시작과 배포


위에 블로그의 수행 내용을 적어 보면서 npruntime을 익혀 보자. 여기에 남기는 것은 위에 블로그를 읽고나서  내가 스스로 익히기 위함이다.

필요한 파일을 다운로드 해야 한다. (gekco sdk, sample source)
source는 다운받기가 은근 이상하여, 긁어서 파일로 만들었다. 그래도 좀 이상해서 올려놓은것으로 다운받았다. 그것이 소스이다. 완성된 프로젝트가 받고 싶으면 위에 블로그를 참고 하기 바란다.(정신건강을 위해 블로그에서 다운받기를 추천한다.) 위에 나열한 블로그가 국내에서 유일하게 NPRumtime을 한글로 볼 수 있는 곳이다.
또 하나의 블로그가 있다면, 위에 사이트를 정리 해놓은 것으로 단순히 따라가기로 하기엔 좋은 블로그인다.


vs2005~2008 도 가능하지만, 아래 와 같이 "WIN32 Dynamic Linking Library" 을 만들줄을 몰라서 vs6.0 으로 작업을 하였다.



source를 각각에 맞게 추가한다. 위치는 아래에 넣고 테스트 하였다.



이제 환경설정을 맞춰주자. 아까 받은 겍코sdk를 압축을 풀어서 패스에 넣어주자.
.\xulrunner-sdk\include\plugin,.\xulrunner-sdk\include\java,.\xulrunner-sdk\include\nspr



이제 바로 컴파일을 해보자.

이러고 나면 엄청난 에러가 떨어진다. (이거 이상하게 나만..ㅠㅜ)

각 *.cpp 에 최상단에 #include <windows.h> 을 추가 한다. 
plugin.cpp 에는 #include <windowsx.h> 를 더 추가 한다.

이후 컴파일을 하면, warning이 발생할 수 있다. 해당 warning은 프로젝트.dll이 nprt.dll이 아니라서 그렇다. 아래 그림처럼 추가해주면 된다.

"메뉴 - Build - Batch Build" 를 선택하면, Release도 컴파일이 가능하다. 해당으로 컴파일을 하게 되면, 에러가 발생할것이다.

fatal error C1083: Cannot open include file: 'npapi.h': No such file or directory

"메뉴 - Project - Setting" 에서 Release 모드를 선택한 후에 위에서 설정한 모든것을 따라 한후 아래와 같이 C/C++ - Category - General 로 하고, Preprocessor definitions에 ,XP_WIN,_X86_을 추가 한다.

WIN32,NDEBUG,_WINDOWS,_MBCS,_USRDLL,SAMPLE_EXPORTS,XP_WIN,_X86_

그냥 결국 아래 그림처럼 한다.


이후에, dll을 적용해 보자. dll을 각 오픈웹(크롬, 파이어폭스...나머지는 안해봤다) 에 적용시켜 보자.
FireFox : C:\Program Files\Mozilla Firefox\plugins
Chrome : C:\Documents and Settings\Administrator\Local Settings\Application Data\Google\Chrome\Application\6.0.472.63
(Debug에 있는 dll만 plugin에 넣었을때 인식하는데, 이것은 왜 그런지 찾아봐야 겠다.)


이후에,
src에 test.html을 수행해 보면, 몬가 잘 안된다.
이것은 

이곳을 참고 해서 각 파일들을 수정한다.

위에 블로그에 마지막 두번째 소스를 보면 
sBar_Value[value->value.stringValue.utf8length] = '';

이런 부분이 있다. 여기에 null값을 넣어줘야 한다.
sBar_Value[value->value.stringValue.utf8length] = '\0';


이렇게 하고 나면 test.html은 어느정도 동작을 한다. 

------------------------------------------------------------------------------------

이제 배포를 따라 해보자.
그전에 파일 2개만 수정하고,
1. 
nprt.rc 를 더블클릭하면, Resource 탭으로 이동을 할것이다. 여기에서 MIMEType을 아래와 같이 수정한다. 음...왜하는지 모르겠지만, 수정한것이 나중에 어떤 변화가 있는지 확인해보자.
application/mozilla-npruntime-scriptable-plugin,version=1.0.0.1
2.
npp_gate.cpp 에 NPP_GetMIMEDescription(void) 이렇게 생긴 함수의 내부를 아래 처럼 바꾼다.
return "application/mozilla-npruntime-scriptable-plugin,version=1.0.0.1";

배포에 관련된 Inno라는 배포 프로그램을 소개 하고 있다. 해당 프로그램을 설치해서 테스트 해보자.


Stable Release 
를 다운 받았으나, 프로그램 수행시, ISPP 를 요구 하기 때문에 QuickStart Pack
도 다운받아서 사용한다.


설치를 하면 이와 같이 선택하여, 실행 시킨다.

요런 모양에서 열기를 눌러서 맨위에서 소개한 블로그에서 올려준 visioning.zip 소스에 있는 iss 폴더에 파일을 끌어 당긴다.(iss를 어떻게 만드는지는 모르겠다. 일단 굴려보고 생각해보자)

* iss는 위에서 설치한 QuickStart Pack에서 만드는 마법사가 있다. 


위에 처럼 컴파일을 하게 되면, 해당 디렉토리에 Output이라는 디렉토리가 생기면서 exe파일이 하나 생성이 된다. 

이것을 사용자가 다운받아 설치 하게 하고, 돌리면 된다. 

ActiveX 처럼 자동으로 다운받도록 해주는 기능은 없다.

위에 나열한 블로그를 뒤져보면, javascript를 호출, 피호출 하는 방법이 나와있다.

나머지는 그 블로그를 참조 하도록 하는것이 좋겠다.

'NPRuntime' 카테고리의 다른 글

NPRuntime 의 시작  (0) 2010.10.25