2. INtime 환경의 설정
Windows 서비스 애플릿으로부터
"INtime Win32
Service"를 개시합니다. 이 서비스가 iWin32API의 이용을 가능으로 합니다.

3. Source
Code 변경
헤더 파일
INtime 이 제공하고 있는
iwin32 기능의 이용에는 "iwin32.h"를 사용합니다. (Windows.h와 합해<INtime folder)\rt\include에
존재합니다) INtime 고유의 API를 믹스 하는 일도 가능해, 이 경우에는"iwin32rt.h"도 더해 주세요. 헤더 파일의 기술에는
순서가 있습니다. windows.h의 뒤로 기술해 주세요.
#include <windows.h>
#include <stdio.h>
#include <rtapi.h>
#include <windows.h>
#include <stdio.h>
# include <rtapi.h>
<변경
후>
#include <windows.h>
#include <stdio.h>
#include <iwin32.h>
#include <iwin32rt.h>
#include <windows.h>
#include <stdio.h>
#include <iwin32.h>
# include <iwin32rt.h>
4. 컴파일 설정의 변경

프리프로세서 정의
<변경전의
예>
프리프로세서 정의: WIN32, _DEBUG, _CONSOLE, _MBCS
<변경
후>
프리프로세서 정의: WIN32, _DEBUG, _CONSOLE, _WIN32
인크리드파일패스
헤더 파일의 모든 것은 서드
vender 제공의 것이 아니고, INtime 개발 환경에 포함되어 있는 것을 이용하도록 변경합니다.
<변경
후>
인크리드파일패스: C: \Program Files\INtime\rt\include
"표준 인크리드파일을 무시하는"에 체크합니다
컴파일러 옵션 ”/GZ” 를 떼어냅니다
이 변경을 하지 않은 경우, 이하의 에러가 나옵니다.
????. obj : error
LNK2001: 외부 신호″르"__chkesp"는 미해결입니다
컴파일러 옵션 ”/Op” 를 추가합니다
이 변경을 하지 않은 경우,
sin() , cos() 등의 부동 소수점 연산 함수를 사용의 코드를 릴리스 빌드 하면, VC컴파일러에 있어서의 최적화의 사정으로 이하의
에러가 나옵니다.
????. obj : error LNK2001: 외부 신호″르"__CIsin"는
미해결입니다
????. obj : error LNK2001: 외부 신호″르"__CIcos"는 미해결입니다
5. 링크 설정의 변경

출력 파일명
INtime의 어플리케이션은
확장자(extension) "RTA" 이므로, 최종적으로 출력되는 실행 모듈의 확장자(extension)를 변경합니다.
<변경
후>
<변경
후>
추가 라이브러리 패스: C: \Program Files\INtime\rt\lib
"디폴트 라이브러리를 모두 무시"에 체크합니다
오브젝트 라이브러리 모듈
<변경전의
예>
startupCRT.obj RTXlibcmt.lib oldnames.lib rtapi_rtss.lib rtx_rtss.lib w32_dll.lib
<변경
후>
iwin32.lib rt.lib pcibus.lib netiff3m.lib ciff3mf.lib rmxiff3m.lib
- C++모듈의 경우에는 라이브러리
모듈 "ecpp.lib" 와 "rtppd.lib" 를 한층 더 더해 주세요. 릴리스 빌드의 경우는, rtppd.lib의 대신에"rtpp.lib"를
사용합니다
ecpp.lib rtppd.lib (또는 rtpp.lib)
엔트리 포인트
- "엔트리 포인트 심볼"은
INtime의 경우 불필요합니다. main()를 설치해 주시면 거기로부터 개시됩니다. 혹은 임의의 엔트리로 변경해 주시는 일도
가능합니다.
<변경전의
예>
엔트리 포인트 심볼: _RtapiProcessEntryCRT@8
<변경
후>
엔트리 포인트 심볼: <지정하지 않는다>
스택 어로케이션
- "스택 어로케이션"
과" 위탁"은 다음과 같이 변경합니다.
<변경전의
예>
스택 어로케이션: 0 x1000 위탁: 0x1000
<변경
후>
스택 어로케이션: 0 x4000 위탁: 0x1800
메이저: 21076 마이나: 20052
그 외
- Windows 커넬 모드 드라이버를
구축하기 위한 링커 옵션 "/driver"와 "/align"는 제외합니다. INtime 어플리케이션은 보호된 유저 모드로 동작해 안전성을
보장합니다.
<변경
후>
/driver /align: 0x20…어느쪽이나 삭제
- 링커 옵션"/subsystem"는 이하와 같이 변경합니다.
<변경전의
예>
/subsystem:native, 4.00
<변경
후>
/subsystem:console
이 변경을 하지 않은 경우, 이하의 에러가
나옵니다.
LINK : error LNK2001: 외부 신호
심볼 "_NtProcessStartup"은
미해결입니다
- 링커 옵션
"/heap"를 추가해
주세요. 이 값은 4096 x n로 INtime 어플리케이션 프로세스를 취급할 수 있는 물리 메모리 상한을 의미합니다. 이하의 예에서는 1
MB를 상한으로서 설정해 있습니다.
<변경
후>
/HEAP: 1048576
6. 디버그 빌드를 위한 설정 변경
IINtime 어플리케이션은
INtime에 부속되는 Spider 디버거를 사용해, 개발 PC상에서 실행과 셀프테스트가 가능합니다. 이 때 원시 코드 레벨로 열람·싱글스텝
실행·브레이크 포인트등을 사용한 비주얼·디버그가 용이하게
가능합니다.
디버거를 사용한 시험을 실시하기
위해서는 디버그 빌드 구성의 설정을 다음과 같이 조정해 주세요.
컴파일
설정
<변경 후>
최적화: 무효