달력

4

« 2024/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

질문자 : sinklinu  링크 : http://cafe.naver.com/winmodev/1147
<질문내용>

기존 임베디드 리눅스 환경에서 플랫폼 개발만을 해오던 1人입니다.

수차례에 걸쳐 윈모데브의 글도 많이 읽게 되는 군요.

항상 많은 도움 주셔서 정말 감사합니다.

 

정말 초짜같은 질문일 수도 있으나, 간단한 질문을 하나 올립니다.

 

제가 앞으로 개발하고자 하는 분야는 WM분야이며, C#.NET으로 개발을 진행하고자 합니다.

 

프로그램 개발하기 및 추가적인 관련 글 들을 보면, 웹에서 다운로드 하여 설치 하는 부분을 제외 하고는 VS2008만 설치하면 개발 환경이 갖춰 진다고 나와 있는데요.

 

VS2008 Professional을 사용하면 C# 개발및 C#에서의 .NET 개발까지 완료할 수 있는 건가요??

 

아직. 미들웨어 개념의 좀 부족하다 보니.

 

조언 부탁 드립니다.

 

감사합니다.

<답변내용>

안녕하세요 루나네스 입니다

Visual Studio 2008 Professional 에서 C# / .NET Compact Framework 개발이 충분히 가능합니다

다만, 기본으로 설치되어 있는 스마트 장치 SDK가 Windows Mobile 5 SDK 이기 때문에
요즘 출시되는 최신형 단말기의 WM6.X 버전에 대응하지 못합니다
(WM5로 개발해도 WM6.X에서 동일하게 실행은 됩니다만, 개선된 기능이나 .Net CF 3.5는 이용하지 못합니다)

따라서, WM6 SDK Professional 을 설치하시고, KOR 에뮬레이터와, Eng WM6.1.4 에뮬레이터(이 버전부터 와이드 단말기 지원)
WM6.5로 개발하시려면 추가로 WM6.5 DTK를 설치하시면 됩니다
(단말기가 따로 있으시다면 에뮬레이터는 설치 안하셔도 크게 상관은 없습니다만...)

뽐뿌맨님께서 작성하신 http://cafe.naver.com/winmodev/189 게시물 참고하시면
초기 환경설정에 많은 도움이 될 것 입니다

여담이지만..
Windows Mobile은 미들웨어가 아니고 플랫폼 입니다
현재 WM6.X는 마이크로소프트에서 개발된 Windows CE 5.0을 기반으로 완성된 플랫폼으로
주로 PDA나 스마트폰(윈도폰)에 설치가 됩니다

PC에 설치되어 있는 Windows나 Linux, MAXOS10 같은 모바일 단말기에 설치되는 OS 입니다

 작성일 : 2010.02.01

보다 자세한 정보는 윈도우 폰/모바일 개발자 모임에서 만나보실 수 있습니다

:
Posted by Lunaness
질문자 : jik0101  링크 : http://cafe.naver.com/winmodev/1148
<질문내용>

현재 옵니아2 폰이 있는데 기기에 넣어서 프로그램을 실행시켜보고 싶어서 질문 드립니다.

현재는 빌드할때 GT-I8000 KOR WM 6.5 Pro WVGA Emulator로 빌드를 하고 있습니다.

 

그런데 이걸 폰에 직접 넣어서 테스트를 해보고 싶은데 정확한 절차가 어떻게 되는지 전혀 모르겠습니다..;

 

폰에 넣어서 테스트 하는 방법은 아무것도 모르는 상태라 자세하게 설명 해주시면 감사하겠습니다 ㅠㅠ

 

이상하게 에뮬레이터에서 실행하니 로딩하는게 너~~~~~~무 느리네요;;

 

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

루나네스 개발자님 말씀대로 실행을 했더니 단말기로 바로 실행되는거 같습니다 ^^

 

그런데 에뮬에서 하면 잘 나오는 이미지 경로를 단말기에서는 찾지를 못하네요..

 

'\Storage Card\bg1_1.png' 경로의 일부를 찾을 수 없습니다.

위치 : System.IO._Error.WinIOError()

위치 : System.IO.FileStream..ctor()

위치 : System.IO.FileStream..ctor()

위치 : Microsoft.WindowsMobile.DirectX,Direct3D.TextureLoader.FromFile()

위치 : Microsoft.WindowsMobile.DirectX,Direct3D.TextureLoader.FromFile()

위치 : DeviceApplication.Form1.Form1_Load()

위치 : System.Windows.Forms.Form.OnLoad()

위치 : System.Windows.Forms.Foem._SetVisibleNotify()

위치 : System.Windows.Forms.Control.set_visible()

위치 : DeviceApplication.Program.Main()

 

DX에서 이미지 하나만 출력하는 소스입니다. 그런데 실행하니 위와 같이 오류메세지가 쭉~ 뜨네요;;

에뮬레이터로 할때는 경로를 위에처럼 지정해주니 이미지가 잘 나오는데 왜 단말기에서는 찾을수 없다고 하는지..

그리고 DX를 사용하려면 단말기에 넣을때 또 다른 설정해 줘야 하는게 있나요?

아니면 아래 오류들이 경로를 못찾아서 따라서 나는 오류인지 DX쪽이 문제인지 잘 모르겠습니다..

<답변내용>

안녕하세요 루나네스 입니다

단말기가 있으시다면 단말기로 직접 디버그 및 실행 테스트가 가능합니다
다른 특별한 등록도 필요하지 않고
엑티브싱크(비스타 이상에서는 모바일 디바이스 센터)가 연결되어 있는 상태라면
비쥬얼 스튜디오 상단 도구바에 있는 [대상 장치]에서 아래 그림과 같이
[Windows Mobile 6 professional Device]를 선택하고 디버그 실행 하시면 됩니다

아무래도 에뮬레이터에서 실행하면 꽤 느린편 입니다

실제로 단말기에서 테스트 해본 후 완성하시는 것이 좋습니다

 

나중에 배포 테스트 (CAB  프로젝트 생성)시 생성된 CAB파일을 단말기로 복사해 넣으시고

직접 설치하면서 실행 테스트 하셔도 됩니다

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

 추가 질문 내용 답변

에뮬레이터에 [공유 폴더]로 컴퓨터 하드디스크 폴더에 bg1_1.png를 넣어두신 것 같네요
Bg1_1.png 라는 파일이 단말기의 Storage Card, 즉 micro SD 카드에 해당 파일이 없거나, micro SD 카드를 장착 안하신 것 같네요
절대경로로 설정하신 것 같은데요

단말기의 Storage card에 BG1_1.png 파일을 넣어주시거나
아니면 경로를 수정하셔서, 배포된 파일 위치에 넣어주세요

편하게 하시려면 프로젝트에 BG1_1.png 파일을 추가하여 주시고, 배포시 파일 속성에서 출력 디렉터리로 복사 에서 항상 복사로 선택해 주시면 배포 위치 \Program Files\프로젝트명 에 자동으로 복사 됩니다

이렇게 사용하시려면 경로를 "BG1_1.png" 이런식으로 정의해주셔도 됩니다

따로 하위 폴더 만들어서 넣어주셔도 좋구요 ^^

 작성일 : 2010.02.01

보다 자세한 정보는 윈도우 폰/모바일 개발자 모임에서 만나보실 수 있습니다
:
Posted by Lunaness
2010. 2. 17. 14:12

Timer 질문 입니다. Programing/WinMoDev Q&A2010. 2. 17. 14:12

질문자 : jik0101  링크 : http://cafe.naver.com/winmodev/1130
<질문내용>

WM에서는 타이머가 하나밖에 적용이안되는건가요?

 

타이머를 두개 만들었는데 하나는 인식을 하는데 하나는 인식을 못하네요;

<답변내용>

안녕하세요 루나네스 입니다

타이머는 일반적으로 멀티스레딩 환경에서 다중으로 동시에 사용이 가능합니다만..
(간단하게 예기하면) 타이머의 특성상 프로세스 동작 중 타이머가 작업권한을 받았다가 처리 후 반환하는 식 이기 때문에
동시에 사용하기에는 무리가 있습니다
특히 실시간으로 사용하는 것에는 매우 안좋습니다

질문 올리신 내용은 타이머가 인식되지 않는 다는 내용인데요
결론부터 말씀드린다면
타이머를 여러개 사용해도 전부 동작 한다는 것 입니다

tmrTimer1.enable = true;  <- 이 속성의 값이 true가 되어야 타이머가 동작됩니다

다만.. 위에서 언급드린 내용처럼
타이머의 한 주기 이벤트가 종료 되어야 다른 동작이 가능하기 때문에
타이머1의 Tick event에 정의된 내용이 많을 경우
처리를 하는 시간동안 타이머2의 Tick 이벤트를 실행하지 못하는 경우가 있습니다

Timer1의 간격 100ms
Timer2의 간격 500ms 라고 가정하고
Timer1의 Tick 이벤트에서 시스템에 저장되어 있는 파일을 전부 읽어오라는 (예가 너무 무식한가요;;)
명령을 수행하는데 대략 1000ms 가 걸린다고 하면
당연히 타이머2의 이벤트가 하나나 두개쯤 무시 되기도 합니다
(적고 나서 보니.. 진짜 무식하게 예를 들어놨네요;;  이런 개념이다 라고만 이해해 주세요)

타이머에 대한 자세한 내용은 우리카페 [소년포비]님께서 너무나 잘 설명해 주신 내용이 있습니다
http://blog.daum.net/starkcb/117

첨부된 예제는 제가 간단하게 만들어본
폼 컨트롤의 타이머 2개와 Timer class를 이용한 타이머 2개
총 4개의 타이머가 동작하는 예제 입니다

제가 추천해 드리는 방법은
가급적이면 타이머를 사용하지 않고 Thread를 통해서 작업을 진행하는 것이 좋습니다
단점은 Thread에서 직접적으로 폼 컨트롤을 제어가 불가능하기 때문에
Deligate를 사용해서 접근하도록 코딩을 해야 한다는 점 입니다만
최고의 장점으로 다른 작업에 영향을 주지 않을 정도로 정밀도가 향상됩니다

 작성일 : 2010.01.29

보다 자세한 정보는 윈도우 폰/모바일 개발자 모임에서 만나보실 수 있습니다
:
Posted by Lunaness