제품 사용법

DM 드라이버 설치하기

하제소프트 DM 서버로부터 전달받은 파일은 압축파일형태로 존재한다. 여기서는 이 파일의 이름을 “dmiipci_unsigned.zip” 로 정한다. 압축파일의 압축을 해제하면 다음과 같은 디렉토리를 볼 수 있다

압축파일의 압축을 해제한 모습

[그림 1]압축파일의 압축을 해제한 모습

이중에서 DM 드라이버파일은 “driver” 폴더에 포함되어 있으며, SDK 내용은 “sdk"폴더에 포함되어 있다.

드라이버가 포함된 디렉토리(x86)

[그림 2]드라이버가 포함된 디렉토리(x86)

함께 제공되는 배치파일(bat)과 실행파일(exe)은 사용자가 드라이버를 쉽게 설치하고 제거할 수 있도록 돕기 위해서 하제소프트에서 제공하는 유틸리티이다.

결국 최종적으로 드라이버설치에 사용되는 필수파일은 드라이버파일(sys)과 설치파일(inf), 그리고 인증서파일(cer) 이다. 이렇게 3개의 파일만 사용하면 드라이버 설치가 가능하다.

드라이버를 설치하기 이전에 설치파일의 내용을 확인해야 하는데, 이것은 DM 서버에 접수했던 하드웨어정보와 일치하는지를 확인하기 위함이다.

주의할 점은 절대로 설치파일의 내용을 수정하거나, 따로 저장해서는 안된다는 점이다. 함께 제공하는 인증서파일(cer)은 설치파일의 내용이 수정되지 않음을 증명하기 때문이다.

설치파일의 내용 중 일부분

[그림 3]설치파일의 내용 중 일부분

[그림 3]은 설치파일의 내용 중 아래 부분에 있는 내용이다. 이곳에서 현재 선택해서 보여주고 있는 부분이 하드웨어정보가 기술된 부분이다.

그림에서는 현재 하드웨어가 제조사ID(Vendor ID)가 0x1B21, 디바이스ID가 0x1042 그리고 ClassCode ID가 0x0C0330 임을 알 수 있다.

이와 같은 정보가 기술된 설치파일은 다른 하드웨어에 사용될 수 없다. 주의해야 한다.

모든 내용이 확인되었다면, 드라이버 설치를 위해서, 함께 제공하는 배치파일을 실행하거나 제어판을 통해서 드라이버 업데이트기능을 사용한다. “배치파일실행: DriverInstall32.BAT”

해당하는 배치파일실행으로 드라이버가 설치되지 않은 경우에는 제어판을 통해서 드라이버 업데이트기능을 사용한다.

SDK 환경 구축하기

DM 이 제공하는 SDK는 Visual Studio 2012(C++) 이상의 환경에서만 사용이 가능하다.

[그림 1]에서 examples디렉토리는 예제솔루션이 포함된 디렉토리이다. (여기서는 예제솔루션을 사용하는 방법은 설명하지 않는다. 새롭게 솔루션을 생성하는 방법위주로 설명하도록 하겠다.)

Include, Lib 디렉토리확인

DM SDK에서는 Include(C++) 파일들과 Lib(C++) 파일들을 제공하고 있다. Visual Studio 프로젝트를 생성하면, 반드시 해당하는 디렉토리 위치를 따로 지정해주어야 한다.

Include, Lib 디렉토리

[그림 4]Include, Lib 디렉토리

해당하는 헤더파일과 라이브러리의 위치를 한 번쯤은 탐색기를 통해서 꼭 확인해둘 필요가 있다. 실제 존재하는 위치를 지정할 때 알아야 하기 때문이다. 특히, Lib 디렉토리를 지정할 때는 32비트와 64비트의 위치를 꼭 확인한다.

DM 은 WOW64 환경을 지원하지 않는다. 따라서, 64비트 윈도우환경에서는 64비트드라이버와 64비트 SDK만을 사용해야 한다.(주의)

새로운 프로젝트 만들기

Visual Studio 2015(여기서는 이 버전을 사용해보도록 하겠다)를 사용해서 새로운 프로젝트를 만들어 본다. MFC기반이나 Console기반 어떤것이든 상관없지만, 여기서는 MFC기반으로 만들어 보도록 하겠다.

Visual Studio 2015 (C++) 프로젝트 만들기

[그림 5]Visual Studio 2015 (C++) 프로젝트 만들기

현재는 다이알로그형태의 프로젝트로 만들었다.( 다른 형태도 가능함 ) 새로운 프로젝트를 하나 만들었으면, DM SDK 의 위치를 알려주어야 한다.

DM SDK 의 Include, Lib 경로를 알려주는 방법은 여러 가지 방법이 있지만, 여기서는 소스 수준에서 알려주는 방법을 소개하기로 한다. 소스 파일 중에서 main의 역할을 수행하는 소스파일(c, c++)을 열어서 적당한 위치에 다음과 같은 문장을 추가한다.

#define DMDLLLIBNAME "MYPCIDRIVERNAMEDLL.lib"

// 현재 예제에서는 라이브러리의 이름이 “MYPCIDRIVERNAMEDLL.lib” 이기 때문에 이와 같이 기술한다. 사용자의 환경은 라이브러리의 이름이 다를 수 있다. [그림 4]를 참고한다.

#ifdef _WIN64        // 64비트 버젼을 만들 때 사용됩니다
#pragma comment(lib,"..\\SDK\\lib\\x64\\" DMDLLLIBNAME)
#else                // 32비트 버젼을 만들 때 사용됩니다
#pragma comment(lib,"..\\SDK\\lib\\x86\\" DMDLLLIBNAME)
#endif

경로는 사용자가 DM SDK의 압축파일을 어느 곳에 압축해제 했는지에 따라 달라지는 부분이기 때문에, 위와 같이 적당한 위치를 알려주어야 한다.

이것은 라이브러리의 위치를 알려주는 방법이다.

다음은 헤더파일을 지칭하는 방법이다. 여기서는 F:\dmtest 폴더아래에 압출을 해제한 경우로 가정한다.

#include "F:\\dmtest\\dmiipci_unsigned\\packageNoSigned\\SDK\\include\\dmiiwin32.h"
#include "F:\\dmtest\\dmiipci_unsigned\\packageNoSigned\\SDK\\include\\dmiisdkcommon.h"
#include "F:\\dmtest\\dmiipci_unsigned\\packageNoSigned\\SDK\\include\\dmiisdkvcdll_api.h"

이로서 헤더파일과 라이브러리의 파일의 위치가 소스 수준에서 모두 지정되었다.

다음은 MFC 예제솔루션 파일의 소스 내부에 이와 같은 내용을 모두 포함된 예제모습이다.

그림-6 Include, Lib 파일의 위치를 소스 내부에 포함시킨 모습

Visual Studio 2015 (C++) 프로젝트 만들기

모든 준비는 끝났다. 이제 DM SDK 함수만 사용하면 된다.

DM DLL 위치 확인하기

DM SDK 를 사용하는 프로그램을 개발(빌드)하고 난뒤, 실제로 실행파일을 찾아서 실행할때는 반드시 DM 이 제공한 DLL 파일이 실행파일과 함께 들어 있어야 한다. 32비트와 64비트에서 사용되는 DLL 파일이 서로 다르므로 유의해야 한다

DM 이 제공하는 DLL 파일의 위치

[그림 7]DM 이 제공하는 DLL 파일의 위치

반드시 실행파일은 해당하는 DLL 과 같은 위치에서 실행되어져야 한다.

따라서, 새로운 프로젝트를 생성해서 빌드된 실행파일은 DLL 과 같은 위치에서 실행되도록 설정하는 것이 중요하다.

results matching ""

    No results matching ""