Android.mk가....
특정 OS 별로 다르게 동작하는 것을 확인 했습니다...
윈도우의 cygwin에서의 빌드와
우분투 리눅스에서의 빌드 수행시...
빌드가 되고 안되고 합니다. ㅡㅡ;
이 뭐병도 아니고 말이죠..
현재 원인을 파악중이랍니다.
Android.mk가....
특정 OS 별로 다르게 동작하는 것을 확인 했습니다...
윈도우의 cygwin에서의 빌드와
우분투 리눅스에서의 빌드 수행시...
빌드가 되고 안되고 합니다. ㅡㅡ;
이 뭐병도 아니고 말이죠..
현재 원인을 파악중이랍니다.
지난번에 이어 업데이트 하기로 한 사항을 생각 났을때 올려드립니다.
먼저 며칠전 제가 지인분께 들은 바로는 iOS 최신 버전을 업데이트 한 경우
Xcode 버전을 올려야지만 break point가 걸린다고 합니다. OS X 라이언의 Xcode에서만
가능하다는 이야기를 들었습니다. 하여 해당 부분에 대해서는
제가 보유한 테스트 시료에서 iOS 버전업을 시킬 수 없는 사항인 관계로
확인은 아마 검색 결과 링크로 대체 하게 될것 같습니다.
그리고 iOS 5.0이 설치된 단말을 이용 Xcode 3.2.4또는 3.2.6에서 단말 디버깅시에
break point가 안걸릴때에 대한 대처 방안입니다.
이경우에는 다음과 같이 하시면 성공 가능성이 80% 정도 보장됩니다.
1. Xcode 4를 추가로 설치(기존 Xcode에 덮어 쓰면 안됩니다.)
2. 기존 Xcode 및 새로 설치한 Xcode Organizer에서 등록된 디바이스 모두 제거
3. Xcode 3.2.X대의 Xcode 완전 종료
창에 x표시 누른다고 완전 종료가 아닙니다, 하단에 Xcode아이콘 이나 메뉴에서
종료 버튼을 누르셔야 합니다.)
4. Xcode 4.x 실행하여 디바이스 organizer에 등록
5. 이후 Xcode 4종료 후 다시 Xcode 3.x 시작
6. Xcode 3.x의 Organizer 에서 장치 연결 확인
그래도 안되신다면 위에서 3항까지 하신다음
XCode4에서 먼저 break point 걸리는지 테스트 하신다음
Xcode 3.x에서 진행 하시면 될거 같습니다.
보다 자세한 사항은 수일내로 추가 업데이트 하겠습니다.
함수포인터 : 자료를 가리키는 대신 실행 가능한 코드 또는 실행 가능한 코드를 호출하는데 필요한 정보 블록을 가리키는 포인터. 함수를 마치 자료 조각처럼 저장하고 다루는 데 사용 된다.
댕글러 포인터(dangling pointer) : 유효하지 않은 주소를 가리키는 포인터
이 화면에서 fossy / fossy를 입력하면 다음과 같이 화면을 볼 수 있다.
오랜만에 Apache POI 라이브러리를 공부중이다.
그중 첫번째로 MS Excel에서 만든 파일의 데이타를 불러오는 것이다.
아래 소스는 특정 파일에서 모든 데이타를 numeric, string, fomula, null 로 구분 값을 찍는 소스이다...
주석은 없으니.... 알아서 살펴 보길 바라며
여기서 사용한 라이브러리는 "poi-bin-3.2-FINAL-20081019.tar.gz" 에 있는 jar파일 3개를 썼습니다.
이 소스에 대한 저작권은 저에게 있으며 저작권자의 허가 없이 상업적 용도로 사용시 저작권 침해로 소송을 걸수 있으니
상업적 이용에 대한 제한을 걸어둡니다. (단, 정보 습득과 자기 계발, 공부를 위한 사용이라면 누구나 소스 사용 가능 합니다.)
--- 소스내용 ----
import org.apache.poi.hssf.*;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import java.io.*;
public class TestFrame {
public TestFrame() {
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Main start");
TestFrame test = new TestFrame();
test.process();
}
private void process() {
try {
POIFSFileSystem fs =
new POIFSFileSystem(new FileInputStream("d://workbook.xls"));
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);
int maxlow = sheet.getLastRowNum();
System.out.println("max_row is " + maxlow);
HSSFCell cell = null;
HSSFRow row = null;
for(int i=0; i<maxlow+1; i++) {
row = sheet.getRow(i);
int last_cell = 0;
try {
last_cell = row.getLastCellNum();
System.out.println("last_cell is " + last_cell);
} catch(NullPointerException nex) {
}
for(int j=0; j<last_cell; j++) {
cell = row.getCell(j);
int other = cell.getCellType();
switch(other) {
case HSSFCell.CELL_TYPE_BLANK : {
System.out.print(" ");
} break;
case HSSFCell.CELL_TYPE_FORMULA : {
System.out.print(cell.getCellFormula());
} break;
case HSSFCell.CELL_TYPE_NUMERIC : {
System.out.print(cell.getNumericCellValue());
} break;
case HSSFCell.CELL_TYPE_STRING : {
System.out.print(cell.getStringCellValue());
} break;
}
System.out.print(" ");
}
System.out.println("");
}
System.out.println("5step");
} catch(Exception ex) {
ex.printStackTrace();
}
}
Date/Time: 2011-05-22 11:28:40.514 +0700
OS Version: iPhone OS 4.3.3 (8J2)
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0xf039cde6
Crashed Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libobjc.A.dylib 0x32da1c98 objc_msgSend + 16
1 iPORTALs 0x000801a0 0x1000 + 520608
2 iPORTALs 0x00080930 0x1000 + 522544
3 iPORTALs 0x0006eb0a 0x1000 + 449290
지식인에 Button을 마우스 드래그 할때 마우스 따라 움직이게 하는 방법에 대해서
제가 올린 답변입니다. 질문자가 요청 한 만큼은 처리 못했네요...
내공 향상을 위해 오늘도 열공중입니다....
아래 소스 한번 참고 해 보세요.~~
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TestButton extends JFrame {
JPanel pan = new JPanel(); // 이벤트 등록용 패널
// AWT의 Button으로도 가능
JButton bu = new JButton("버튼");
// 버튼의 기본 좌표용 변수
int x = 10;
int y = 10;
int width = 80;
int height = 20;
// 버튼의 움직임 여부 결정용 변수
boolean moves = false;
public TestButton(){ // 생성자 디자인 및 이벤트 설정
this.getContentPane().setLayout(new BorderLayout());
pan.setLayout(null);
bu.setBounds(x,y,width,height);
pan.add(bu);
this.getContentPane().add("Center", pan);
this.setSize(600,400);
this.setVisible(true);
bu.setFocusable(false);
// 마우스 버튼을 놓았을경우 이동 가능 여부 false로 돌림
pan.addMouseListener(new MouseAdapter() {
public void mouseReleased(MouseEvent ev) {
moves = false;
}
});
// 배경 JPanel에 MouseMotionListener를 등록시켜 Drag때 처리하도록 함...
pan.addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent ev) {
int tem_x = ev.getX(); // 이벤트 발생 좌표값중 x값 추출
int tem_y = ev.getY(); // 이벤트 발생 좌표값중 y값 추출..
/*System.out.println("버튼의 좌표 : " + bu.getX() + ", " + bu.getY());
*System.out.println("버튼의 영역 : " + (bu.getX()+bu.getWidth()) + "," +
* (bu.getY() + bu.getHeight()));
*System.out.println("이벤트발생위치 : " + ev.getX() + ", " + ev.getY());
* 버튼의 영역 안에 있으면 true로 설정...
*/
if((tem_x >= bu.getX()) && (tem_x <= (bu.getX() + bu.getWidth()))) {
if((tem_y > bu.getY()) && (tem_y <= (bu.getY() + bu.getHeight()))) {
moves = true;
}
}
// 마우스 포인터가 버튼 영역 안 여부 판단 후 버튼 위치 재지정...
if(moves) {
bu.setBounds(tem_x-(width/2), tem_y-(height/2), width, height);
}
}
});
}
public static void main(String [] args) {
TestButton tb = new TestButton();
}
}