MFC쓰다가도 가끔 충돌이 나서 골이 썩었던 문제지만 MFC에서는 리소스 파일을 직접 수정하는등의 작업으로 해결했다면



자바의 이 문제는 해결할 방법이 오타 찾는거하고 문제를 모두 수정한 후에 모든 캐시를 날려버리는거라는데 이 무슨 미개한......





맨 처음 접했을땐 .NET의 XAML바탕 개발이랑 비슷하다고 느꼈는데 하면할수록 MFC랑 유사점이 많은거같음



연습용으로 끄적거리는 중이긴하지만 프로젝트가 통째로 날아가시게 생겨서 짜증이 두배! ㅎㅎ...

'일기장' 카테고리의 다른 글

[C#][OpenCV]실시간 이미지 분석에 대해서  (0) 2017.01.22
DPI 이야기  (0) 2017.01.20
Android Studio VS Xamarin  (0) 2016.12.11
알고리즘과 만드는 기쁨  (0) 2016.09.13
이미지 유사성 검사  (0) 2016.06.22
앱을 하나 만들어보려고 하는 도중에 생긴 선택지



기존에 계속 써왔던 비주얼 스튜디오에 끼얹어서 사용할수 있는 자마린(Xamarin) VS 전통(?)적인 방식인 안드로이드 스튜디오를 이용한 앱 빌드




Xamarin의 장점은 일단 아직 익숙하지않은 IDE에 고생할 필요가 없다는 점이겠고

단점은 자마린이 무료로 풀린게 올해 상반기라 아직 자료가 많이 없을 가능성이 높고 커뮤니티 규모도 작을 것이라는 점



ANdroid Studio의 장점은 글로벌하게 사용되는 툴의 사용법을 익힐 수 있다는 점과 이미 많은 강좌가 인터넷에 많이 올라와 있는 부분

단점은 익숙하지않은 개발도구를 사용해야하기때문에 거기서 초래하는 불편이...는 언젠간 넘어야하는 벽이긴하다만

'일기장' 카테고리의 다른 글

DPI 이야기  (0) 2017.01.20
R cannot be resolved to a variable!  (0) 2016.12.15
알고리즘과 만드는 기쁨  (0) 2016.09.13
이미지 유사성 검사  (0) 2016.06.22
파이썬도 좀 봐야겠다  (0) 2016.06.09



그랑블루 도우미의 최신 릴리즈에 대한 정보입니다.


.NET Framework 4.5 기반으로 되어있으며 윈도우 8.1 미만의 OS에서는 해당 프레임워크의 설치가 필수입니다.

XP에서는 해당 프레임워크가 지원되지않는 관계로 동작하지않습니다.


소스 코드: https://github.com/FreyYa/GranBlueHelper


확장기능 테스트 용도의 프로그램도 별도로 배포하고있습니다. 관련 페이지



기본적인 동작은 게임을 하면서 프로필/기공단 채팅로그 페이지/강화 페이지/아이템 페이지 등에 들어가게 되면 


자동적으로 프로그램이 반응하여 해당 페이지에 맞는 행동을 수행합니다.


기본적으로 번역기능은 구글 혹은 네이버 취사선택이 가능합니다



해당 어플리케이션은 이하 기능을 지원합니다



  • 시나리오 번역(일본어->한국어)
  • 스크린샷 촬영
  • 메시지 번역(일본어 -> 한국어)
  •   프로필이나 기공단의 메시지를 번역가능. 
  • 계산기 
  •   무기/소환석/캐릭터의 목표 레벨까지 남은 경험치와 거기에 필요한 강화전용 오브젝트의 개수를 대략적으로 계산해줍니다.  
      스킬랭크업에 필요한 필요치도 계산해줍니다. 스킬랭크업에 대한 자세한 계산기능은 지원하지 않습니다.
  • 십천중 계산기
  •   십천중에 들어가는 재료의 카운팅을 지원합니다.
  • 총알 계산기
  • 총알 제작에 들어가는 재료의 카운팅을 지원합니다.
  • 전투가 끝난 경우 알림을 띄워 알려줍니다. 기본적으로 알림음이 포함되어있으며 설정으로 On/Off가 가능합니다.
  • 알림음은 Sounds폴더 안의 mp3파일중 하나를 무작위로 재생합니다




문제발생보고 및 기능건의는 메일로 해주시면 감사하겠습니다.




3.2.0.3 변경점


- 알림 관련 작동이 추가되었습니다.

- 전투가 끝난 경우 전투가 끝났음을 알림으로 알려줍니다. Sounds 폴더 내에 있는 mp3파일 중 하나를 무작위로 재생합니다.


3.2.0.6 변경점


- 알림 관련 오류 수정

- Bookmaker 자동 기록 기능 관련 개선


3.2.0.7 변경점


- 시나리오 번역을 하지 않는 설정을 추가하였습니다. 번역되지않은 시나리오 파일은 XMLS\Raw폴더에 저장됩니다.


3.2.0.8 변경점


- 십천중 리스트가 일부 환경에서 정상작동이 되지않는 문제 수정


GrandcypherGear 3.2.0.8.zip


'Release > 그랑블루 도우미' 카테고리의 다른 글

그랑블루 브라우저(PwatPlayer) 베타  (25) 2017.08.10

일단 알파값을 지정하지않고 DICOM파일을 3D모델로 변경하면 피부부터 시작해서 뼈까지 모든 부분이 표시되기때문에



만약 STL파일등의 3D오브젝트 파일로 해당 파일을 빼내려면 투명화 된 부분의 데이터를 제거하는 작업이 필요하다고 본다.




그리고 STL파일의 특성상 있을수도 있고 아닐수도 있습니다 같은 애매한 상태는 존재할 수 없기때문에 경계선을 명확하게 그어줘야하는데


일단 지금 내가 구현해본 형식 내에선 명확한 경계를 그을 수 없다는 점도 문제. 아마 이 부분은 VTK의 교집합, 차집합, 합집합 등의 기능들을 활용하면 어느정도는 구현할 수 있으리라고 생각한다.



지금도 특정 포인트를 기준으로 알파값과 색을 지정하는 형태니까 일정 범위 내에서 특정 알파값을 가진 부분의 오브젝트를 따로 때내어 복사할 수 있으면 해결할 수 있지않을까 하는 생각




하지만 이미 프리웨어 등으로 풀리고 있는 소프트웨어쪽이 좀 더 성능도 좋고 각 장기간의 색구분도 깔끔하게 되는 편이기때문에 혼자서 아무리 고민해도 더 월등하거나 버금가는 성능의 프로그램은 나오기 힘들겠지...


이 그랑블루 판타지라는 게임은 모바일 게임(?)에 턴제 RPG임에도 불구하고 느긋하게 플레이 할 수 없는 게임이다. 1등을 거머쥐거나 빠른 전투를 위해서는 일정 이상의 속도가 필요한데 웹게임이라 여러가지 환경에 영향을 많이 받는다. 여기서는 일단 사용자들이 가장 쉽게 만질 수 있는 옵션을 다뤄보겠다.


부제목을 붙이긴했지만 몇개나 나올련지는...



1. 기초설정




기본적으로 설정 - 연출/화면설정 에서 베타버전 설정에서 버전을 베타로 설정해야 속도가 빨라진다.


만약 베타로 설정했는데 속도가 느려지면 아래 내용이 도움이 될 것이고...빠름을 체험해보지 못했다면 빠른게 뭔지 알 수도 없을테니 플레이 속도에 문제가 없다고 생각해도 아래에 이어지는 WebGL 비활성화 작업을 한번 시도해보는것이 좋을것이다.








2.1. 기초설정 이외의 추가 해결법


그랑블루 판타지는 기본적으로 WebGL이라는걸 쓰는 모양이다. 웹에서 3D등의 그래픽을 보여주기 위한 라이브러리같은데


일단 몇몇 경우에는 컴퓨터가 정상적인 처리를 못 하는 것 같아보인다. 오히려 사양이 낮은 컴퓨터에서 잘 돌아가는 경우가 왕왕 보이는데 아마 해상도 탓이 아닐까 하는 생각도 든다.


예전에는 크롬의 chrome://flags에서 직접 WebGL을 끌 수 있었지만 어느새 구글은 그 기능을 막아버렸고


지금은 대표적으로 두 가지 방법이 남아있다.


핸드폰에서 WebGL을 끄는 방법은 아쉽게도 지금으로선 존재하지않는다. flags페이지에서 해당 옵션이 제거되었기때문에....아이폰을 사도록하자



2.1.1. 크롬 확장을 설치


https://chrome.google.com/webstore/detail/disable-webgl/nlapleiepodflfbclacdhmbldadobpah?utm_source=chrome-app-launcher-info-dialog


WebGL 사용을 막아주는 확장 어플리케이션이다. 설명을 보면 크롬이 해당 기능을 막아버렸을때 거의 바로 만든 것 같다.




2.1.2. Command Line Arguments를 사용


chrome://flags에서 바꾸는 법이 막혀버렸기 때문에 현재로서는 자체적으로 막을 방법이 없다.


이 방법은 바로가기에 손을 대서 활성화를 막는 방법이다.





매우 간단하게 저렇게 -disable-webgl 이라고 써주면 webgl이 비활성화된다.


-disable-webgl 대신 --disable-3d-apis를 사용해야 한다.


하지만 이 방식의 경우 어느 순간 막힐 가능성이 있다는걸 염두에 두어야한다. SSL관련 커맨드 라인도 몇개 있었지만 지금은 모두 사용 불가가 됐다. 구글이 강력하게 WebGL을 푸쉬하는 날이 오면 이 옵션도 사라지게 될지도 모르겠지...


2.2. WebGL의 비활성화 확인


확인은 WebGL 사양을 확인해주는 사이트에서 확인하는 법과 chrome://gpu 페이지에서 확인하는 법이 있다.


사이트는 구글링하면 여러 종류들이 있지만 http://webglreport.com/ 이 사이트에서 확인이 가능하다


 --disable-3d-apis로 webgl를 비활성화시키면 chrome://gpu에서는 꺼졌다고 표시되지않는다.




0. 부록 : 의외로 자주 잊어버리거나 꺼지는 설정





가끔가다보면 배틀 스피드가 1배속으로 되어있는 경우가있다. 잘 한번확인해보도록하자


최근 어떤 문제들을 접하게 되서 풀어볼 시간이 좀 있었는데 문제들의 수준이 생각보다 높았고 여러가지 방향에서 생각해야되는 문제들이라 해결하는데 꽤나 애를 먹었다.


동시에 문제를 풀면서 일종의 쾌감 같은것도 느끼긴했지만 역시 코드가 완성되서 완벽하게(최소한 내가 제어하는 범위 내에선) 돌아가는 모습을 볼때의 쾌감이 가장 크겠지...





물론 이 알고리즘이 에러를 뿜고 이상한 결과값을 내고 멋대로 폭주하기 시작하면 그때부턴 또 속이 쓰리겠지만


또 그 문제를 해결하면 기쁨이 올것이고 하지만 그 수정되었다고 생각한것이 또 터지고...머리 앞에당근을 매달아둔 조랑말이 된거같은 기분도 가끔 들지만

'일기장' 카테고리의 다른 글

R cannot be resolved to a variable!  (0) 2016.12.15
Android Studio VS Xamarin  (0) 2016.12.11
이미지 유사성 검사  (0) 2016.06.22
파이썬도 좀 봐야겠다  (0) 2016.06.09
[OpenGL]그래픽 카드 유무의 차이  (0) 2016.06.01

장점...이라고 말하기보기단 내가 WinForm자체를 그리 많이 접해보질 못했기때문에 사실 따질 부분이 없지만 일단 조악하게나마 만져본 경험과 MFC를 만져본 경험에 비추어봐서 몇개 꼽아보자면


가장 큰 장점은 UI를 구성하는데 거추장스럽지않고 깔끔하게 다룰 수 있다는점. 이 이상 할 말이 없을정도로 UI구성이 쉽고 다루기가 편하다. 물론 익숙해지는데 시간이 좀 걸릴수는 있겠지만 그건 뭘 해도 똑같은거고...


또 하나 더 꼽아보자면 안드로이드 어플리케이션이 이런 방식으로 UI를 구성한다는점. 근데 잠깐 건드려보고 말아서 잘은 모르겠지만 확장성이나 난이도는 WPF쪽이 훨씬 좋고 쉽다. 이클립스에선 Grid를 써서 UI를 구성하면서도 뭔가 만들다 만듯한 기분이 계속 들기도하고...




단점이라면 나같은 경우는 주로 MetroRadiance라는 라이브러리와 Livet이라는 라이브러를 써서 WPF 어플리케이션을 만드는데 사실 이렇게 만들어진 라이브러리가 없으면 접근하기가 꽤나 번거롭다...초창기에는 관련 라이브러리가 없으면 만질수도 없을정도. 지금은 MetroRadiance는 없어도 어느정도 만들 수 있지만 Livet은 아직도 필요하다...


물론 WinForm식의 접근도 가능하기야하지만 View와 ViewModel간의 연계라보기단 그 중간형태의 작업같다는 느낌히 강하게 들기때문에...이런식의 접근으로만 할 수 있는 작업도 존재하기때문에 완전히 무시하기도 힘들고



그리고 정말 빈약하다고 말하면 빈약이라는 단어에게 미안할 정도로 국내 자료가 적다...책이 있긴 있는 모양이지만 진짜 그냥 개론만 적어놓은 느낌이고. 사실 해외 포럼에서도 그렇게 인기있는 항목은 아닌지 검색해봐도 뭐 하나 구현하는데 사람마다 구현방법이 다 다르니;; 뭐 이쪽은 정해진 답이 없다 라는게 거의 언제나 정설로 통하는 부분이지만 학습하는 입장에서는 조금 괴롭다...

'Programing > C#' 카테고리의 다른 글

[C#]var와 dynamic  (0) 2016.12.29
[C#]JSON 데이터 Deserialize  (0) 2016.12.28
[C#][STL]STL Converter  (0) 2016.08.02
[C#][OpenCV]C#에서 OpenCV를 사용하기  (0) 2016.07.02
[C#] C++에서 만든 라이브러리를 C#에서 사용하기  (0) 2016.02.18

아마추어라 더 심오한 기능을 이해하지 못하고 겉면만 핧는 이야기가 될수도 있다고 생각하지만 Git의 가장 좋은 기능은 Commit이라고 생각한다.


특정 부분에서 특정 부분까지 무슨 작업을 했는지 메모를 달아서 기록을 남길 수 있는 부분이 가장 강점인듯 싶다. 비슷한 도구가 있는지는 모르겠지만...




그것 외에도 branch를 분기시켜서 추가기능이나 코드 수정등을 한 다음 본래 master에 merge시키거나


분기를 갈라서 합치지않고 비슷하지만 다른 여러종류의 프로젝트를 하나의 프로젝트 파일 내에서 관리할수있거나 하는 등의 활용법도 좋다고 생각한다. 일반적으로 잘 쓸거같지는 않지만...


Github같은곳에서 보면 협업기능도 많이 강조되는것 같다. 로컬라이징같은 작업을 할때 분업하기도 편하고 잘 모르는 부분에 대해서 잘 아는 사람이 직접 수정을 해서 작업물을 pull해주면 그걸 merge해서 프로젝트를 탄탄하게 만드는 과정도 좋은 부분이라고 생각한다.




다만 단점이라면 기본적으로 cui환경에서 다루어지도록 짜져있어서 그런지 gui환경의 툴로는 완벽하게 제어가 되지않아 cui환경에서의 작업방법도 알아둬야한다는 점이다. 그리고 맨 처음 commit이나 forking merge 등의 기능에 대해 이해하기도 힘들고말이다.


그리고 한번 commit하면 그걸 되돌리는 작업이 꽤나 번거롭고 힘들기때문에 Commit을 할 시점을 잘 골라야 한다는 점도 있다. 물론 VS에선 예전 코드와 현재코드를 같이 볼 수 있으니까 수동으로 되돌리기도 비교적 쉽고 기능 자체로 아예 revert가 가능하니 잘 다루는 사람이라면 크게 문제가 될것은 없다고 생각한다. 



필자는 알려주는 사람도 없고 기초적 지식도 없어서 혼자 Git 가이드를 몇번씩 읽어보고 직접 테스트해가면서 매우 기초적인 작업은 수행할 수 있도록 되었지만 아직도 revert등의 작업이 낮설다. 뭐 하여튼 cui툴도 다룰 줄 알아야 한다는 점이 의외의 장벽이 될 수도 있다고 생각한다.



http://vtk.1045678.n5.nabble.com/Make-3D-Modelling-from-2D-DICOM-td5727316.html




해당 스레드에서는 vtkDICOMImageReader를 사용하라고 되어있지만 아마 해당 클래스는 정상작동을 안할 가능성이 높다. 어떤 파일을 읽어들일수 있는지가 의문일 정도...





뭐 대충 찾아보면 압축되어있는 파일은 읽지못하고 그 Mac에서만 돌릴 수 있는 프로그램으로 풀어준 후에 읽어와야한다는것 같지만


ITK도 해보고 별의 별 짓을 다 했는데 해당 파트는 결국 다 무위로 돌아갔고


찾아낸 간단한 대안으로 GDCM(http://gdcm.sourceforge.net/)이라는것을 사용하여 DICOM이미지를 읽어들일 수 있다. CMake하는데도 손이 덜 가고 빠르게 진행이 된다.






다만 GDCM쪽의 DICOM 리더에서는 폴더째로 읽어들이는 매소드가 포함되어있지 않은 것으로 보여 별도의 파일목록 작성 매소드를 작성해서 작성된 파일 리스트를 복수의 DICOM파일을 읽어들이는 메소드로 넘겨줘야한다.

C#으로 짜여진 간단한 stl파일 변환 프로그램이다.


ASCII형식의 stl파일과 바이너리 형식의 stl파일의 상호 변환이 가능하다.




.Net Framework 4.5.2 기준으로 개발되어있어서 해당 프레임워크의 설치가 필요


STL Converter.zip



VTK라이브러리를 CMake를 이용하여 빌드하는것과 예제 프로그램을 빌드하는것까지는 성공하였으나


예제가 정상적으로 실행이 안되는 경우(포인터 초기화가 안되는 문제)에 대해....





처음에는 CMake 설정을 잘못 잡았나부터 시작해서 여러가지 원인을 생각했었으나


문제는 인터넷에 예제로 올라와있는 VTK버전이 지금의 VTK버전과 다른부분에서 문제가 발생한것이였다.



추측으로는 VTK 기존버전(6.0미만)에서는 모듈의 초기화를 자동적으로 해주는것으로 보이나


6.0이상의 버전에서는 vtk관련 클래스를 사용하기 전에 별도의 define 매크로를 사용해서 모듈초기화를 해줘야 하는것같다.




위와 같은 이유로 예제의 stdafx.h 파일에 include와 define들을 더 추가해줘야한다.



일단 vtk소스에 동봉되어있는 샘플의 stdafx.h파일의 맨 마지막에 해당 줄들을 추가하여 문제를 해결하였다.






문제 해결법 출처:


http://www.vtk.org/Wiki/VTK/VTK_6_Migration/Factories_now_require_defines


http://public.kitware.com/pipermail/vtkusers/2014-July/084426.html

예전 LG노트북의 경우(최신은 써보지않아서 모르겠다) 바이오스 설정이 매우 부실하기때문에 멀티부스트를 장착하여 하드를 증축했을 경우 부팅순서가 재대로 잡히지 않는 경우가 왕왕 발생하는 모양이다.



필자도 그랬고 검색하니 수많은 사례들이 발견되었다.



인터넷에 있는 여러 해결법중 윈도우 재설치를 제외한 모든 방법을 다 동원해보았지만 해결이 가능한 경우는 없었다.


오히려 멀티 부팅을 응용해서 바로 돌리라는 팁을 보고 적당히 따라하다가 MBR영역을 작살내버려서 한시간은 추가로 소비한듯싶다....



여기서 윈도우 재설치 없이 부팅순서를 원하는대로 설정하는데 최종적으로 성공하였으니 일단 방법을 적어보고자한다


필자는 인터넷 찾아보면 이 문제에 관련해서 말도많고 탈도많은 A520기종을 사용하였고 OS는 윈도우 10 Home 64비트 버전이였다.


ssd를 산 다음 기존 하드 내용물을 마이그레이션 툴을 이용해 그대로 옮긴 후에 멀티부스트를 장착했는데 부팅순서가 재대로 잡히지 않는것이 문제였다.


이 포스팅이 최종적으로 목표하는 것은 윈도우 재설치를 하지않고 부팅순서를 원하는대로 잡는 방법이며 아마 윈도우 재설치가 좀 더 깔끔하고 빠른 해결법이 될 수도 있다고 생각한다.



1. 먼저 부팅하기 원하는 디스크만 노트북에 장착하고 보조 디스크는 노트북에서 제거한다.

(보조 디스크를 제거하지 않아도 상관없다는 제보가 있다. 번거로운 경우는 제거하지않고 시도해보도록 합시다)


2. 윈도우 설치/부팅 USB를 준비한다.


3. USB로 부팅을 한 후, 윈도우 설치 시작 화면이 뜨면 Shift + F10을 눌러 커맨드창을 띄운다


4. 

커맨드 창에서

bootrec /fixmbr

bootrec /fixboot

bootrec /rebuildbcd


명령어를 사용한다.



5. 전원을 끈 후 다시 켜면서 부팅이 정상적으로 되는게 확인되면 1번에서 제거한 디스크를 노트북에 장착한다




아마 이렇게 하면 문제가 해결될것이라고 생각된다.







만약 부팅 문제가 해결되지않는경우



F10을 눌러 원하는 디스크로 부팅을 한 다음


mbr 초기화 라고 검색하면 나오는 검색결과들에서 bootsect.exe 파일을 받은 후



만약 보조 드라이브의 레이블이 d:라면


커맨드 창을 관리자 모드로 열어서

bootsect /nt60 d: /mbr


이렇게 해주면 정상적으로 부팅이 될 것이다.



정말 간단하다




NuGet 패키지를 사용하면 끝.



프로젝트의 참조에 오른쪽 마우스 클릭->Nuget 패키지 관리에서 opencv를 검색한 후에 OpenCvSharp-AnyCPU를 설치하면 된다.


c++의 함수에서 대소문자가 바뀐것과 약간 사용법이 바뀐것 빼고는 거의 동일하게 구성되어있다.


함수를 쓸때는


Cv2.함수


이런식으로 쓰면 OK. 그 외 대부분의 것들은 OpenCvSharp. 쪽에 들어가있다.



NuGet 패키지 자체는 C++에서도 사용할수 있는것으로 보이지만 예전에 시도했을때는 제대로 사용하지 못했기때문에 C++쪽에서 NuGet 패키지 사용은 어떻게 굴러가는지는 모르겠다...

이미 블로그에 C#으로 짜여진 동일 이미지 찾기가 있지만 이걸론 반투명 러쉬를 막을수 없는것으로 판단, OpenCV를 투입하기로 결정....


http://blog.acronym.co.kr/558


이미지 분석도 해봐야겠다고 생각했으니 가벼운 튜토리얼 하는 기분으로 시도할생각

'일기장' 카테고리의 다른 글

Android Studio VS Xamarin  (0) 2016.12.11
알고리즘과 만드는 기쁨  (0) 2016.09.13
파이썬도 좀 봐야겠다  (0) 2016.06.09
[OpenGL]그래픽 카드 유무의 차이  (0) 2016.06.01
드디어 정리 완료  (0) 2016.05.10

간략하게 작성할수있는게 매력적으로 보이고


비주얼 스튜디오에서도 지원해준다는걸 얼마전에 알아서 이거도 배울까 생각이


확실히 개발툴에 너무 매달리는 기분이 들긴하는데 편한건 편한거니까....



왜이렇게 끌리는것도 많고 할것도 많은지.....시간 시간이 부족하다


'일기장' 카테고리의 다른 글

Android Studio VS Xamarin  (0) 2016.12.11
알고리즘과 만드는 기쁨  (0) 2016.09.13
이미지 유사성 검사  (0) 2016.06.22
[OpenGL]그래픽 카드 유무의 차이  (0) 2016.06.01
드디어 정리 완료  (0) 2016.05.10

그래픽카드가 아예 없다는건 불가능한 이야기이지만 여기서는 내장형 그래픽카드와 PCI슬롯에 장착하는 그래픽카드의 차이





당연한 이야기이긴하지만 추가슬롯에 장착하는 그래픽카드의 유무에 따라 같은 프로그램에서 같은 파일을 읽어들이는데도 결과물에 차이가 생긴다



간단한 모델을 돌리거나 광원이 없을때는 문제가 없었지만 확실히 본격적으로 3D실습을 하기에 지금 사용하는 노트북은 부적격...


'일기장' 카테고리의 다른 글

Android Studio VS Xamarin  (0) 2016.12.11
알고리즘과 만드는 기쁨  (0) 2016.09.13
이미지 유사성 검사  (0) 2016.06.22
파이썬도 좀 봐야겠다  (0) 2016.06.09
드디어 정리 완료  (0) 2016.05.10
C#에서는 바이트를 다루는 클래스가 따로 존재하지만 C++에서는 그런 클래스가 따로 있는것같지는 않다. 검색해보면 다 손수 코드를 짜서 변환해야하는듯


memcpy를 사용한다.



일단 에디트플러스는 옛날부터 써왔고 보면 쓰는사람이 꽤 있는 툴같지만 상용툴이기때문에 무료로 쓰려면 조금 치사한 수를 써야하고



http://www.acrosoft.pe.kr/board/acroedit


AcroEdit은 얼마전에 알았는데 이 툴은 일단 공개프로그램이기때문에 공식사이트에서 받아서 사용하면 된다는것이 매력적.


그리고 에디트플러스에서 out of memory가 뜨는 파일도 AcroEdit에서는 충분하게 열람이 가능하다.



아직 AcroEdit을 써본지가 며칠 되지않았기때문에 갈아타느냐 마느냐 하는 문제는 좀 더 시간이 걸리겠지만 아마 갈아타게 되지않을까...



일단은 C#으로 바이너리를 ASCII로 바꾸는부분을 대체하고 있지만 파일 자체를 읽어서 화면에 출력하는 것은 성공적


다만 문제는 시간인데 대략 1분당 8만개의 삼각형을 로드하는 속도라 실제로 이 이미지를 로드하는데도 6분정도의 시간이 소모되는


그리고 그 facet normal인가 뭐 하튼 광원에 대한 고려가 전혀 되어있지않기때문에 윤곽은 볼 수 있지만 디테일한 부분은 전혀 볼수 없는 문제와 축 기준의 회전은 충분히 가능한 부분이지만 아직 자유롭지가 않고 결정적으로 지금은 예제를 따라한 수준이라 카메라를 상하로 이동시키지 못하기때문에 꽤나 제한적인 뷰가 된다.

제독업무도 바빠 관리는 관뒀고 이제 거의 아카이브같은 용도로 사용하는 블로그가 될것...

글 백업 복원이 된다면 아예 블로그를 새로 파는것도 좋겠지만 스킨 다시 설치하는것도 귀찮고


'일기장' 카테고리의 다른 글

Android Studio VS Xamarin  (0) 2016.12.11
알고리즘과 만드는 기쁨  (0) 2016.09.13
이미지 유사성 검사  (0) 2016.06.22
파이썬도 좀 봐야겠다  (0) 2016.06.09
[OpenGL]그래픽 카드 유무의 차이  (0) 2016.06.01

기본적으로 csv파일이 작성될때 utf-8포멧으로 작성이 되어도 파일 맨 앞에 BOM 작성이 누락되어있는 경우에는 마이크로소프트 엑셀에서는 해당 문서를 utf-8포멧으로 인식 못하는 경우가 생긴다.



해결법은 두가지로



첫번째는 utf-8 BOM추가가 가능한 텍스트 에디터로 새 이름으로 저장을 통해 파일을 덮어씌우는것이고



두번째는 윈도우 메모장으로 해당 csv파일을 연 후에 파일->저장을 누르면 메모장은 자동적으로 파일 맨 앞에 BOM을 추가하게 되고 이 이후부터는 엑셀에서 정상적으로 파일을 열어볼 수 있게 된다.



다만 잘못된 저장이나 인코딩 설정을 잘못하여 이미 손실된 특수문자들은 복구되지않는다. 메모장이나 기타 텍스트 에디터로 열어봤을때는 정상인데 엑셀로 열었을때만 글자가 깨지는 경우에 대한 해결책이다.

http://andrew0409.tistory.com/101



http://www.codeproject.com/Articles/2477/Multi-threaded-Client-Server-Socket-Class


찾아보니 일반적인 통신은 http로도 괜찮다고 하던데 채팅 프로그램이나 mmorpg같은 경우에는 소켓 통신이 필요하다고 한다


C를 제외하고 맨 처음 접한 언어가 C#이라서 그런지는 모르겠지만 이 부분이 프로그래밍을 학습하는데 지대한 영향을 끼치고 있다는건 확실한것 같다.


뭐 모든 프로젝트를 더블바이트로 작업하면 대부분의 문제는 해결되지만 비주얼 스튜디오는 기본적으로 유니코드를 권장하는것 같고...




일단 쓰기 더 번거로운 언어라는 생각은 아직도 변하지 않는 부분이지만...쓰다보면 프랑켄슈타인 같다는 느낌을 지울수가없음.

http://kaludin.egloos.com/2461942




추가 선언이 필요

'Programing > C++' 카테고리의 다른 글

[C++] OpenGL과 STL 사용  (0) 2016.05.26
[C++]소켓 통신  (0) 2016.04.06
[C++]Visual Studio 2013 이후버전에서 MySQL 연동하기  (0) 2016.03.28
[MFC][C++]문자열 복사  (0) 2016.03.10
[MFC]COleDBRecordView::OnGetRowset 재정의  (0) 2016.03.09

AWS는 Amazon Web Service의 약자로 아마존에서 운영하는 클라우드 서비스이다.


가입하면 1년동안 프리티어의 서버를 사용할 수 있다고 해서 사용중인데 연습용으로 좋은것 같다.



http://domino.symetrikdesign.com/2010/10/07/how-to-create-a-mysql-workbench-connection-to-amazon-ec2-server/



여긴 우분투를 사용해서 SSH UserName이 우분투이지만 아마존 OS를 사용하는 경우 ec2-user로 유저명을 정해주면 된다

'Programing' 카테고리의 다른 글

[Visual Studio] 알 수 없는 오류입니다 해결법  (0) 2017.04.27
STL 포멧에 대해 메모  (0) 2017.04.18
더블 바이트와 유니코드  (0) 2016.04.04

http://passmeby30.tistory.com/66


라이브러리 참조가 너무 번거롭다...

'Programing > C++' 카테고리의 다른 글

[C++]소켓 통신  (0) 2016.04.06
[C++]static 선언시 주의해야 할 점  (0) 2016.03.30
[MFC][C++]문자열 복사  (0) 2016.03.10
[MFC]COleDBRecordView::OnGetRowset 재정의  (0) 2016.03.09
[C++]DLL 연결  (0) 2016.02.18

예전 책을 보면 strcpy가 자주 보이지만 wcscpy를 쓰는것이 더 좋아보일때가 있다


하지만 MFC에는 CString 이 있으므로 CString으로 변수를 선언한다음 직접 할당해주거나 Format메소드로 문자열을 재선언하는 편이 속편하다.

https://msdn.microsoft.com/en-us/library/7ya51z3f.aspx


무조건 재정의를 해줘야한단다




CRowset* CTapeView::OnGetRowset()


이렇게 쓰면 안되고



CRowset< >* CTapeView::OnGetRowset()


이렇게 써야 정상처리



그리고 지금 예제로 사용하고 있는 책에 문제가 좀 있는데 VS C++ 6에서는 문제가 없겠지만 상위 버전(Visual Studio 2013)에선 문제가 발생함




이렇게 재정의 하도록 예제가 짜여져 있으나 실은



이렇게 작성해야 정상적으로 작동하게 된다.

http://stdesignstar.tistory.com/entry/03-DLL%EC%9D%98-%EC%97%B0%EA%B2%B0

 

 

C#보다 참조가 번거로운것 같다...

http://blog.secmem.org/598

 

일단 WIN32 API를 사용하는것과 방법은 동일.

 

다만 위 페이지에는 설명이 되어있지않지만 

 

인자를 받는 함수를 DLL로 작성해서 작동 테스트를 해보기위해 F5를 눌러보면

 

 

 PInvoke 함수 '[함수명]'에 대한 호출 결과 스택이 불안정하게 되었습니다. 관리되는 PInvoke 시그니처와 관리되지 않는 대상 시그니처가 일치하지 않기 때문인 것 같습니다. 호출 규칙 및 PInvoke 시그니처의 매개 변수와 관리되지 않는 대상 시그니처가 일치하는지 확인하십시오.

 

같은 에러가 발생하는 경우가 있다. 작동은 잘 되는것 같지만

 

 

이 경우에는 DllImport를

 

[DllImport("DLL파일명", CallingConvention = CallingConvention.Cdecl)]

 

이렇게 수정해주면 에러가 발생하지않는다. 호출방식을 정해주지 않아서 생기는 문제라고한다




(http://blog.daum.net/windria/53)

'Programing > C#' 카테고리의 다른 글

[C#]JSON 데이터 Deserialize  (0) 2016.12.28
[WPF]WPF의 장점?  (0) 2016.09.13
[C#][STL]STL Converter  (0) 2016.08.02
[C#][OpenCV]C#에서 OpenCV를 사용하기  (0) 2016.07.02
[C#]큰 이미지 안에서 작은 이미지 위치 찾기  (0) 2016.02.16

+ Recent posts