Visual Studio 2010이 출시되었다. 물론 난 가난한 개발자(일명 Hungry Developer)이기 때문에, 유일한 방법인 Visual Studio 2010 C# Express를 설치하였다. 첫 설치의 느낌은 느리다.

어쩌튼 Visual Studio 2010에 관한 정보들은 넘처나니깐 넘어가고,
OpenCV를 이용한 개발을 하기 위해 환경 구축 중 Build할 때 에러가 발생하였다.

OpenCVSharp Error Message


에러 메시지를 보고 바로 이유를 알았다. "C#에서는 32bit로 만들어진 C++ DLL을 사용하기 위해서는 x86으로 타겟 플랫폼을 설정해야한다." 라는 생각이 들었다. (이 문제로 엄청 오랜 시간을 소요한 적이 있어서 바로 알 수 있었다.)

하지만, 두둥!
Visual Studio 2010 C# Express에서 프로젝트 설정 > 속성 의 값을 확인하였는데 타겟 플랫폼을 설정하는 란이 없었다.

Visual Studio 2010 C# Express build configuration


위의 사진처럼 타겟 플랫폼에 관한 정보가 없었다. 단지 무료 Express 버젼이라서 그런 것도 없는 것이야!
하고 고민하였지만 해결 방법은 매우 쉬웠다.

Tools > Options > Project & Solution 선택 후 오른쪽의 체크 박스 중 Show advanced build configurations 체크

만약 위의 Project & Solution 메뉴가 없다면 아래쪽의 Show all settings를 체크하면 나타날 것이다.
왜 이렇게 감춰둔게 많아진거니? VS2010!!

위의 작업을 마치면 이제 원하는 Build 옵션, 타겟 플랫폼을 설정할 수 있다.


Visual Studio 2010 뭔가 디자인도 이쁘고, 쾌적한 느낌이지만...
속도는 확실히 느리다. 뭔가 방법이 없니?

바보였다. 위의 에러는 내가 OpenCV 2.0 파일을 넣어두는 바람에 발생했던 것이었다 ㅠ_ㅠ
2010/05/07 15:28 2010/05/07 15:28

C#에서 CRC-16-IBM을 구현한 클래스이다. CRC 테이블을 이용하여 빠르게 연산될 수 있도록 구현하였다.



UInt16(=ushort)로 CRC를 반환하는 클래스이다. 기존에 자바로 짜졌던 코드를 그대로 구현했는데 정상적으로 잘 작동하였다. 뭐... 특별히 언어에 구애받는 코드도 거의 없군.

테스트 할 때 1234로 했었는데 int의 byte[] 값을 넣어서 예상값과 다르다고 잘못 제작했다고 바보 같이 시간을 낭비한 적이 있었다. 사실 웹상에서 CRC를 계산하는 페이지는 모두 ASCII 기준으로 돌아가는 것이었다.
ㅠㅠ 바...보...


[참고] 웹상에서 제공되는 CRC 계산기

2010/04/27 11:48 2010/04/27 11:48
C#에서 현재 경로를 알아내는 방법은 여러가지가 있다.

1. System.Environment.CurrentDirectory

가장 쉽게 현재 실행 경로를 알아낼 수 있는 방법이다. 하지만 이 방법은 Register에 등록된 프로그램으로 실행되면 다른 값을 출력한다. 이때는 3번 Application.StartupPath를 이용해야 한다.

* 루트일 경우에는 '\' 반환, 그 외의 경우에는 폴더명까지만 반환한다.
  • C:\
  • C:\TestFolder\MyApp

2. System.IO.Directory.GetCurrentDirectory()


1번과 동일하다.


3. Application.StartupPath

위의 Register에 등록되었을 때도 정상적으로 자신의 시작 경로를 반환한다. 하지만 이는 Window Forms를 사용할 때만 Application 클래스를 사용할 수 있기 때문에 Console 기반 혹은, 클래스 라이브러리 기반에서는 사용이 불가능하다.
Tip. Application.ExecutablePath
현재 실행된 어플리케이션의 실행 파일의 위치이다. C:\Test\App.exe 와 같이 출력된다. 이 정보는 현재 경로가 아니기 때문에 변경되지 않는다.

2010/04/27 11:40 2010/04/27 11:40