====== Chart FX ======
Software FX에서 개발한 차트 라이브러리.
===== Visual Studio 2008의 MFC에서 사용하는 방법 =====
Chart FX 7.0의 경우 COM버전이 없기 때문에 (2012. 4 기준) C#, VB가 아닌 다른 언어에서 이용하기 힘든 점이 있다. 하지만 Windows form 컨트롤 호스팅 방법을 사용하면 MFC에서도 사용 가능하다.
==== NET 사용자 정의 컨트롤 생성 ====
- 새 Visual C# Windows 컨트롤 라이브러리 프로젝트를 만든다. 여기에서는 프로젝트 이름을 WindowsFormsControlLibrary1 라고 가정한다. 새 프로젝트 대화 상자에서 Visual C# 폴더의 Windows Form 컨트롤 라이브러리를 선택 후 확인 버튼을 클릭한다.\\ 이 때 프로젝트의 이름이 생성될 DLL의 파일명이 된다.
- UserControl1에 하위 컨트롤을 추가한다.\\ 오른쪽 도구 상자에서 Chart FX 목록의 Chart를 UserControl1 디자인 화면에 끌어 놓는다. Chart가 보이지 않는다면 Chart FX 목록의 빈 공간을 마우스 오른쪽 버튼 클릭 후 항목 선택을 클릭하고 Chart (네임스페이스 : ChartFX.WinForms)를 체크한다.
- Chart 클릭 후 속성 화면에서 적절히 속성을 편집한다. 이 때 디자인 탭의 Name 값이 MFC에서 Chart 컨트롤 시 사용하게 되는 변수명이 된다. 여기에서는 Name을 chart1이라 가정한다.
- UserControl1.Designer.cs 파일에서 Chart의 선언을 private이 아닌 public으로 변경한다.
- 프로젝트를 빌드한다. 배포용으로 만들기 위해서는 Release로 빌드한다. 빌드 후 프로젝트의 디렉토리에 DLL 파일이 생성된다.
==== MFC에 Chart FX 추가 ====
- 추가할 MFC 프로젝트 폴더에 DLL, XML 파일을 모두 복사한다.
- 프로젝트 속성 대화 상자를 연 후 구성 속성 – 일반을 선택한 다음 프로젝트 기본값 섹션에서 공용 언어 런타임 지원을 공용 언어 런타임 지원(/clr)으로 설정한다.\\ 마찬가지로 공용 속성 – 프레임워크 및 참조를 선택한 후 새 참조 추가를 클릭한다. 대화 상자에서 찾아보기 탭을 클릭하고 생성된 DLL 파일을 선택한다. 여기에서는 WindowsFormsControlLibrary1.dll을 선택하면 된다.
- stdafx.h에서 다음 줄을 찾는다.
#endif // _AFX_NO_AFXCMN_SUPPORT
위에서 찾은 줄 위에 다음 코드를 추가한다.
#include // MFC Windows Forms support
- Chart FX 컨트롤을 선언한다. 다음과 같은 방식으로 적절한 class에 선언하면 된다.
CWinFormsControl m_ctrl1;
- 정적 컨트롤과 컨트롤을 연결하기 위해서는 다음과 같은 방식의 코드를 DoDataExchange 함수에 추가하면 된다.
DDX_ManagedControl(pDX, IDC_CTRL1, m_ctrl1);
==== 주의 ====
/clr 옵션으로 컴파일하면서 vararg (함수의 가변 인자) 를 사용할 수 없다.
==== 참고 ====
http://msdn.microsoft.com/en-us/library/85344whh.aspx
==== 배포 ====
- .net Framework 4 설치 (아래의 Windows SDK를 설치 하기 위해 필요)\\ http://go.microsoft.com/fwlink/?LinkID=187668
- (필요 없는 듯) 최신 버전의 Windows Software Development Kit 설치\\ http://msdn.microsoft.com/en-us/windows/bb980924.aspx\\ lc.exe 실행을 위해 SDK가 필요할 수 있으나 Visual Studio를 설치한 경우 자동으로 설치됨
- 프로젝트의 Release 폴더에 빈 Licenses.licx 파일 생성 후 메모장을 이용해 다음과 같이 내용 편집
ChartFX.WinForms.Chart, ChartFX.WinForms
의미 : <클래스 이름, DLL 파일 이름>
- Visual Studio 또는 Windows SDK의 Command Prompt 실행.\\ Visual Studio 2008인 경우 시작 – 프로그램 – Microsoft Visual Studio 2008 – Visual Studio Tools 폴더 아래에 있다.
- 프로젝트의 Release 폴더로 이동 후 다음과 같이 실행
lc /target: /complist:licenses.licx /i:ChartFX.WinForms.DLL
- 생성된 Executable.licenses 파일을 프로젝트 폴더 아래로 이동
- 프로젝트를 Visual Studio로 연 후 프로젝트 속성(Properties) – 링커(Linker) – 입력(Input) – 관리되는 리소스 파일 포함(Embed Managed Resource File)에 Executable.licenses 파일 추가\\ 프로젝트 폴더 아래의 ChartFX 폴더에 Executable.licenses 파일을 복사한 경우 ./ChartFX/ Executable.licenses 입력
- 컴파일한 후 ChartFX가 설치되지 않은 컴퓨터에서 실행 확인
==== 참고 ====
* ChartFX 매뉴얼 : Using Chart FX for .NET Windows Forms control from a DLL \\
* [[http://msdn.microsoft.com/en-us/library/ha0k3c9f(v=vs.80).aspx|License Compiler]] \\
* [[http://support.softwarefx.com/kb/610/1/010.htm|How to add a ChartFX license]] \\
* [[http://windowsclient.net/articles/Licensing.aspx|.NET Licensing]] \\