유튜브에 올라와있는 'OpenTK' 플랫폼 튜토리얼을 따라하는 포스팅입니다. 'OpenTK'는 'OpenGL', 'OpenCL', 'OpenAL'가 합쳐진 C#랩퍼입니다. 'Mono'와 호환되여 멀티플랫폼지원합니다. 'OpenAL'과 'OpneES'도 사용할 수 있고 자말린 스튜디오(Xamarin Studio)에서도 사용 가능합니다. 0. 원본 OpenTK Platformer Tutorials: Part 0 '비주얼 스튜디오 설치' 및 'OpenTK' 라이브러리 참조 하기. 1. 설치 하기 'OpenTK' 공식홈페이지에 가서 라이브러리를 다운받습니다. (참고 : OpenTK) 설치를 합니다. 설치할때 설치경로 확인합니다. 단순히 압축을 푸는 것이기 때문에 아무곳에나 설치하셔도 됩니다. 압축을 푼 폴더에 ..
닷넷에서 클래스(Class)와 같은 오브젝트(object)를 바이트 배열(byte Array)로 만드는 건 좀 번거로운 작업이 필요합니다. 그런 번거로운 작업 중 재미있는 게 있어서 퍼왔습니다. 바로 'XML'을 이용하여 클래스를 바이트 배열로 만드는 것입니다. (참고 : code.about - HOW TO CONVERT FROM YOUR CLASS OBJECT TO BYTE[] AND VICE VERSA AND SEND IT THROUGH SOCKETS) 1. 기능 구현하기 일단 클래스를 만들어 봅시다. public class TestXML { public string Data1 { get; set; } public string Data2 { get; set; } public string Data3 {..
간만에 슈퍼소켓을 사용하려는 에러가 딱!!! 'System.Configuration.ConfigurationElement' 형식이 참조되지 않은 어셈블리에 정의되었습니다. 'System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 어셈블리에 참조를 추가해야 합니다. 아놔 ㅎㅎㅎㅎㅎ 이건 내용을 잘못 이해하면 컨피그에 퍼블릭 키 토큰(Public Key Token)을 추가해야 할것 같지만 사실 'System.Configuration'가 참조에 없다는 뜻입니다. 참조 관리자를 열어 어셈블리 > 프레임워크 에 보면 'System.Configuration'를 찾아 추가하시면 됩니다. 요걸 추가하면 에러가 사라집..
슈퍼소켓(SuperSocket)을 테스트 하다보니 예상하지 못한 문제가 몇 가지 있네요 ㅎㅎㅎㅎ 여러 문제 중 클라이언트에서는 데이터를 전송했는데 서버에서 반응이 없는 경우를 알아봅시다. 0. 문제의 확인 클라이언트에서 데이터를 보내 봅시다. 서버에서 접속되었다는 메시지가 잘 출력되는 것으로 보아 서버에 접속은 됐습니다. 그런데 메시지를 보내면(스크린 샷에서 '보내기'로 표시된 부분이 메시지를 보내는 부분입니다.) 서버에서 응답이 없습니다 ㅡ.ㅡ (정상적인 동작이라면 서버로 보낸 메시지가 그대로 돌아와야 합니다.) 그래서 기존에 만들었던 서버로 테스트해보니 클라이언트에서 데이터는 잘 넘어오고 있습니다. 1. 문제의 이유 이런 문제가 발생하는 것은 슈퍼소켓의 기본리시브필터가 아스키(ASCII)로 된 텔넷 ..
합성 컨트롤(Authoring a Composite Control)은 '유저 커스텀 컨트롤'과는 달리 DLL형태로 만들어wu 재사용이 쉽다는 장점이 있습니다. 예전엔 '유저 제작 컨트롤'같은 이름이였던거 같은데 기능이 바뀐 건지 처음 듣는 이름이네요. 개념상으로는 기존의 컨트롤들을 재조합하여 만들기 때문에 이런 이름을 붙인 것 같습니다. 간만에 그림하나 없는 MSDN의 샘플이 아무런 작업 없이 잘 돌아간 것 같네요 ㅋㅋㅋㅋ 그래서 MSDN의 샘플을 그대로 따라가도록 하겠습니다. (참고 : MSDN - 연습: Visual C#에서 합성 컨트롤 제작) 1. 프로젝트 생성 C# > Windows > Windows Forms 컨트롤 라이브러리 를 선택하고 이름을 'ctlClockLib'으로 한 다음 프로젝트를 ..
'OpenCVSharp'의 설명페이지에는 별도의 작업 없이 'OpenCVSharp.dll'만 참조하면 mono에서도 'OpenCVSharp'를 사용 할수 있다고 나와 있습니다. (참고 : OpenCVSharp - Tutorial_UnixPlatforms) 'ml'와 'cvblob'는 컴파일을 다시 해서 사용하라고 나와있습니다. ('OpenCVSharp'의 소스를 받아보면 모노를 구분하여 작성된 코드들이 보입니다. 이것으로 보아 모노를 지원하는 것이 맞는것 같네요.) 그런데 테스트 프로그램을 만들어서 돌려보니 안됩니다-_-; Mono로 작성해보니 윈도우 스타일로 하면 안되겠다는 생각이 드네요-_-; 1. 준비하기 일단 우분투에 'OpenCV'를 설치 해야 합니다. 'OpenCV'의 버전은 'OpenCVSh..
웹캠의 영상처리를 위해 자료를 찾아보니 윈도우에서는 다이렉트쇼(DirectShow)를 이용하더군요. 그런데 모노프로젝트를 이용하여 멀티플랫폼을 구성할 예정이라 다이랙트X(Direct X)는 사용할수 없습니다. 그래서 검색해보니 오픈CV(Open CV)를 모노용으로 만들어 쓰라고 하는군요. 언제나 이런문제는 귀찬기 마련이죠 ㅎㅎㅎ 그리고 다행히 누군가 프로젝트를 진행하고 있습니다. Emgu CV - OpenCV in .NET (C#, VB, C++ and more) opencvsharp - OpenCV wrapper for .NET Framework 저는 'opencvsharp'를 사용하겠습니다. Emgu CV가 유명하고 좋다고는 하는데.... 'opencvsharp'는 한국커뮤니티가 잘되있고 닷넷에 익숙..
마이크로 소프트나 다른 회사에서 만든 컴포넌트들을 쓰다 보면 흔히 격는 일 중에 하나가 제공되지 않는 기능이 필요할 때입니다. 보통은 해당 클래스를 상속받는 클래스를 만들거나 별도의 클래스를 만든 후 그 클래스 안에 기존 클래스를 생성하고 새로 만든 클래스에 기능을 추가 하는 방법도 있습니다. 그런데 일관성을 높이려면 A클래스에 속한 기능을 B클래스를 선언해서 사용하는 건 그리 좋은 방법이 아닙니다. 기존에 A클래스를 참조하고 있는 모든 기능을 B클래스로 옮겨야 하기 때문이죠. (안 그러면 어떤 건 A를 참조하고 어떤 건 B를 참조하는 불상사를 많이 보게 됩니다-_-;) 이럴 때 사용하는 것이 확장 메서드(Extension Methods) 입니다. 이름 그대로 남이 만들어 놓은 객체에 내가 원하는 기능을..
단축 주소를 구현하기 위해서 'MapPageRoute'를 사용합니다. (참고 - [Asp.net] 단축 주소 구현하기) 'RouteTable.Routes.MapPageRoute'를 이용하다 보면 종종 '404 에러'를 볼수 있습니다. 'MapPageRoute'를 이용할때 '404 에러'는 보통 라우팅을 잘못해서 엉뚱한 페이지로 가는 경우입니다. 그런데 로컬에서 잘 동작하고 테스트서버에서 잘돌아가서 본서버에 적용했더니 본서버에서는 '404 에러'가 났습니다. -_-;;;; 1. 해결 방법 이것저것 해봤는데 결국 먹힌건 이것 뿐입니다-_-; 웹 컨피그(Web.config)파일에 밑에 다은 코드를 추가 합니다. 1-1.찝찝함 검색을 하다보면 '' 이 옵션을 쓰지 않는 것이 좋다는 말이 종종 보입니다... 이유..
몇 년 전부터 써야지 써야지 하면서도 까먹고 사골국물처럼 묵혀 두었던 이야기입니다. (까먹고 있다가 얼마전에 다른 블로거분과 이야기하다 생각나서 간단하게 적어 둡니다.) 닷넷 프로그램은 다른 운영체제에서 사용할 수 없다고 알려져 있습니다. 그 이유는 닷넷 프로그램은 닷넷 프레임워크(.Net framework)위에서 돌아가는 프로그램인데 MS가 다른 운영체제용 닷넷프레임워크를 만들지 않았기 때문입니다. 하지만 꽤 오래전부터 다른 운영체제에서 사용할수 있는 닷넷 프레임워크를 만드는 프로젝트인 '모노 프로젝트'라는 것이 있습니다. 모노 프로젝트 모노 프로젝트는 윈도우가 아닌 운영체제에서 닷넷을 사용하기 위한 프로젝트입니다. (참고 : 위키백과 - 모노 (소프트웨어),모노 프로젝트 홈페이지) 지원 범위 2013..