본문 바로가기

분류 전체보기

VisualStudio에서 Firefox 3.6.4 / Firefox 4.0 디버깅 하기 VisualStudio에서 Firefox 3.6.4 / Firefox 4.0 디버깅 하기 Firefox는 3.6.4부터 플러그인을 Firefox 프로세스로부터 분리하였습니다. 작업관리자에서 보면 'plugin-container.exe'라는 프로세스가 떠있어요.이렇게 프로세스를 분리하니까 Firefox는 성능이 좋아졌는지 어떤지 모르겠지만, 개발자 입장에서 보면, breakpoint가 걸리지 않아요.. IE 8 처럼... [1]의 링크를 따라가보면 아래와 같은 해결책이 있습니다.VS plugin이나 plugin-container.exe 프로세스에 attach하는 방법도 있긴 한데,더 간단한 해결책은 다음과 같습니다. 1. Firefox 주소창에 'about:config'를 입력한다.2. 경고 창 보여 주기.. 더보기
NPAPI 메모리 관리 (Memory management in NPAPI) NPAPI 메모리 관리 (Memory management in NPAPI) NPAPI의 NPObject 객체도 참조 카운트를 사용하여 메모리를 관리하고 있습니다.NPObject를 다루를 함수들은 아래와 같이 다양합니다. - NPN_CreateObject, NPN_RetainObject, NPN_Release, NPN_Evaluate, NPN_GetValue,NPN_SetValue, NPN_GetProperty, NPN_SetProperty, 등등 그런데 참조 카운트를 증가하고 감소하는 메커니즘에 대한 이해가 쉽지 않아 구글링을….다음과 같이 누군가가 작성해 놓았네요 [1] (원문은 맨 아래 링크 클릭) 이해한 바에 따르면,위에 언급한 NPObject 함수들에서 NPObject를 얻으면, 작업을 마친 후에.. 더보기
Expat XML Parser 에서 한글(EUC-KR) 처리하기 Expat XML Parser 에서 한글(EUC-KR) 처리하기 Expat XML Parser는 ISO-8859-1 (latin1), ascii, utf-8, utf-16 의 4가지 문자코드만을 지원합니다.그래서 한글이나 기타 다른 언어를 파싱하려면 별도의 처리를 해줘야만 하죠. Expat 소스를 직접 수정하는 방법도 있지만,핸들러를 등록하여 사용할 수 있습니다. Expat 에서 지원하지 않는 인코딩 타입을 만나면 XML_SetUnknownEncodingHandler( ) 함수에서 등록된 핸들러가 호출됩니다. 이 핸들러는 XML_SetUnknownEncodingHandler( ) 함수를 이용하여 내가 설계한 핸들러를 등록하는데,핸들러 타입은 XML_UnknownEncodingHandler 이며 타입 선언.. 더보기
[inno setup] 설치시 사용자 대화창 없애기 [inno setup] 설치시 사용자 대화창 없애기 inno setup 으로 설치 파일을 만들 때 사용자 대화창 (설치 경로/비밀번호 등)을 없애고 싶을 때가 있습니다.사용자가 클릭 한번으로 설치할 수 있도록. 첫번째 방법은command-line에서 파라미터로 /silent 혹은 /verysilent 혹은 /sp- 를 사용하여 '조용히' 설치할 수 있습니다.아래 처럼요.> setup.exe /silent이렇게 하면 setup.exe를 더블클릭했을 경우 확인 창도 뜨지 않고 바로 설치에 들어갑니다.아래에서 보듯이 /verysilent 는 '매우 조용히' 설치 할 수 있네요. 설치 창이 전혀 보이지 않습니다. /SP- Disables the This will install... Do you wish to c.. 더보기
[팁] vs 2005, vs2008 로 IE8에서 디버깅문제 해결법 vs 2005, vs2008 로 IE8에서 디버깅문제 해결법 IE8 설치하고 개발할때 브레이킹 포인트, 프로세스 디버깅 등 디버깅이 안돼요 아래와 같이 LCIE의 프로세스 추가 할당 기능을 비활성화해주면 된다고 하네요.. 1) HKEY_LOCALMACHINE -> SOFTWARE -> Microsoft -> Internet Explorer -> Main 2) DWORD값을 TabProcGrowth 이름으로 해서 추가 (값 = 0) 위와같이 설정해놓으면 평소에 디버깅하는 방식대로 디버깅이 가능한데... vs2008 은 지금 잘 안됩니다 Web Browser Debugger 방식이 디버깅이 추가 되어 있어 이것을 이용하면 된다고 하던데 이 방법도 아직 못찾았네요 windows 7에 IE8일경우 TabProc.. 더보기
[npruntime] NPVariant로 배열(array) 넘기기 및 받기 npapi/npruntime 에는 자료형으로 NPVariant 형을 사용하는데, NPVariant 에는 array 타입이 없습니다. 다시 말해서, javascript에서 플러그인으로 배열형을 넘겨줄때 NPVariant 타입으로 넘기면 되는데,... NPVariant 타입은 아래와 같이 7개가 전부 입니다. : NPVariantType_Void, NPVariantType_Null, NPVariantType_Bool, NPVariantType_Double, NPVariantType_Int32, NPVariantType_String, NPVariantType_Object 그래서, 플러그인에서 javascript로 배열 타입을 넘겨 줄때는 따로 처리를 해줘야 합니다. javascript로 넘겨준다는 것이 NPV.. 더보기
[mozilla] NSPR 빌드 NSPR 빌드 1. 모질라 빌드 환경을 구축한다. MozillaBuild package를 다운 받아 설치하면 현재 visual stdudio 2010 버전까지 지원되네요 https://developer.mozilla.org/En/Developer_Guide/Build_Instructions/Windows_Prerequisites#MozillaBuild or Download the current MozillaBuild package. 2. nsprpub 디렉토리로 가서. ./configure를 실행한다. 아래의 링크를 따라가면 됩니다... https://developer.mozilla.org/en/NSPR_build_instructions 간단히, 아래와 같이 하면 끝, ..!! $ ./configure .. 더보기
[Linux] [firefox] Building sample npruntime plugins NPRuntime Plugins 빌드하기 아래 가서 보세요 출처 : http://www.cmiss.org/cmgui/wiki/BuildingSampleNpruntimePlugins 대충 요약하자면,.. + 모질라 개발자 사이트 : https://developer.mozilla.org/en/Plugins+ 게코 플러그인 API 레퍼런스 : https://developer.mozilla.org/En/Gecko_Plugin_API_Reference+ 게코 SDK : https://developer.mozilla.org/en/Gecko_SDK+ 파이어폭스 소스 : ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/ 모질라 샘플 프러그인 : 모질라 소스의 아래 경로.. 더보기
NPAPI로 Browser Cookie 설정하기 NPAPI로 Browser Cookie 설정하기 파이어폭스와 사파리에서 동작 (오페라, IE는 비정상 동작, 크롬은 안해봤음) Gecko 1.9 이하 버전 :GetCookie()if( NPN_GetValue(npInstance, NPNVWindowNPObject, &pWndObject) == NPERR_NO_ERROR) { if(NPN_GetProperty(npInstance, pWndObject,NPN_GetStringIdentifier("document"), &npDocument) == true) { if(NPN_GetProperty(npInstance, NPVARIANT_TO_OBJECT(npDocument), NPN_GetStringIdentifier("cookie"), &npCookie) == .. 더보기
HTML embed 태그에 관하여... HTML의 EMBED 태그 embed 태그에는 아래와 같은 속성(attribute)가 있다.각 링크를 따라가서 살펴보는건 본인 몫. SRC: URL of resource to be embeddedWIDTH: width of area in which to show resourceHEIGHT: height of area in which to show resourceALIGN: how text should flow around the pictureNAME: name of the embedded objectPLUGINSPAGE: where to get the plugin softwarePLUGINURL: where to get the JAR archive for automatic installationHIDDE.. 더보기