2010-12-22 8 views
1

나는 블랙 베리 전처리에 대해 의심이있다. 나는 이클립스 (eclipse)를 사용하고 터치 기반 장치와 쿼티 장치와 호환되는 코드베이스를 유지 관리하고있다. 이제 Eclipse에서 잘 알려진 문제는 ... 4.5의 Blackberry 설치 구성 요소를 변경하면 사전 처리기 블록 안에 넣어도 터치 특정 API 부품에 대한 컴파일 오류가 표시되기 시작했습니다. 4.7과 4.5에서 컴파일 할 때 같은 코드가 JDE에서 오류를 발생시키지 않습니다.검은 딸기 전 처리기가 일식

나는 http://smartfone-more.blogspot.com/2010/05/coding-for-multiple-blackberry-devices.html에서 팁을 따랐고, // if ifdef는 // ifndef의 두 블록으로 // ifdef를 주석 처리합니다.

기본적
//#ifdef MY_FLAG 
my logic 
//endif 

이클립스 4.5 구성 요소의 터치 기반 코드를 무시되도록

//#ifndef 
/* 
//#endif 
mylogic 
//#ifndef 
*/ 
//#endif 

으로 전환.

//#ifdef MY_FLAG 
my logic for touch 
//#elseif 
my logic for qwerty 
//endif 

는이 같은이 물건을 다시 작성할 수 있습니다 : : 그래서

//#ifndef MY_FLAG 
/* 
//#endif 
my logic for touch 
//#ifndef 
*/ 
//#endif 

//#ifndef MY_FLAG 
my logic for qwerty 
//#endif 

지금은 질문이

,

내가이 같은 전처리의 경우 - 다른 블록이 있다고 가정 1 if-else 블록 대신에 블록이 2 개 있으면됩니다. 이로 인해 성능 문제가 있습니까? 기본적으로, 그들은 동일합니까?

답변

3

전처리 기는 컴파일 타임에 실행됩니다. 컴파일하는 데 약간 시간이 걸릴 수 있지만 실제로는 약간의 시간이 걸립니다.하지만 런타임에는 성능 문제가 없습니다.

+0

여기에 다른 사람이 http://www.blackberryforums.com/developer-forum 같은 메아리 /242164-regarding-blackberry-preprocessor-eclipse.html#post1687274 – arin

0

실제로 작동합니까? 4.5 컴파일을하지는 않았지만 4.7 이상의 터치 코드를 컴파일하고 작동 시켰습니까? Eclipse는 실제로 수행해야 할 작업을 나타내는 파일을 (/.preprocessed/에) 작성하지만, 컴파일 할 때 지시문을 완전히 무시합니다. 내 경우에는 ...

다음 중 하나를 사용하여이 작업을 수행 할 수 없습니다. 그물 주위에 게시 수단의 다양한 ...

이 어렵지 않을해야하지만, 이봐, 그것은 블랙 베리의)

+0

제 경우에는 else 블록이 작동하지 않는 일반 JDE 전 처리기 솔루션입니다. 때마다 블랙 베리 구성 요소를 4.5로 변경 ... 일식 코드 – arin

+3

BTW에서 touchEvent 참조 오류를 보여줍니다, 전적으로 당신과 동의 .. 블랙 베리 dev에 엉덩이에 진짜 고통입니다! – arin

+0

전처리 기가 4.7 코드에서 작동하도록 할 수 없습니다. 난독 화 된 주석 전체가 숨겨져 있습니다. 새로운 범퍼 스티커 : 안드로이드를 코딩하고 싶습니다! – Dan

관련 문제