1. [CASE-1] C++(MFC)를 사용하여 개발한 경우
1-1. [방법-1] 프로젝트 속성값 수정하기
1-2. [방법-2] Windows Embedded CE 6.0 전용 SDK를 다운받아 개발 환경에 추가 설치
2. [CASE-2] Dot NET Compact Framework 3.5를 이용하여 C#, VB(Basic)로 프로그램 개발한 경우
3. [CASE-3] Dot NET Compact Framework 3.5를 이용하여 SmartX Framework를 C#, VB(Basic)로 프로그램 개발한 경우
순서로 진행합니다.본 문서는 IEC1000-Series의 운영체제가 기존 Windows Embedded Compact7에서 Windows Embedded CE 6.0으로 변경에 따른 기존 사용자(업체)의 장치 응용 프로그램의 호환성에(프로그램이 정상 동작) 관련된 내용으로 개발 언어에 따른 수정 및 변경사항을 설명한 문서와 자료입니다. 대부분의 프로그램의 실행파일은 별도의 수정 없이 실행이 정상적으로 될 수도 있겠지만 그렇지 못할 경우 개발 환경에 따라서 자료를 참고하시기 바랍니다.
- SmartX Framework 2.8.0 이하 버전이 설치되어 있는 경우 최신 버전을 다운로드 받아 설치하고 솔루션 빌드를 다시 하시기 바랍니다.
- SmartX Framework의 최신 버전을 프로젝트에 적용하기 전에 작업하시는 프로젝트의 백업을 반드시 권장합니다.
- 만약 최신 버전의 적용 이후 문제가 발생하면 원격 지원을 통해 문제 해결을 지원해드리겠습니다.
1. [CASE-1] C++(MFC)를 사용하여 개발한 경우 1-1. [방법-1] 프로젝트 속성값 수정하기
- [STEP-1] [프로젝트] → [속성]
- [STEP-2] [링커] → [추가 옵션(D)] → [/subsystem:windowsce,7.00 ] → [/subsystem:windowsce,6.00]으로 변경 후 [확인] → [빌드] → [솔루션 빌드]
- [STEP-1] [자사 홈페이지 www.hnsts.co.kr] → [자료실] → [제품관련]
[IEC1000 Series SDK 설치파일(Win CE 6.0)] 다운로드 - [STEP-2] 다운로드한 IEC1000_CE6_SDK파일 실행 → [Next] 클릭
- [STEP-3] [Custom] 선택
- [STEP-4] [Custom Setup] → [Next] → 설치 시작
- [STEP-5] 새 프로젝트 생성
- [STEP-6] Visual C++ → 스마트 장치 → MFC 스마트 장치 응용 프로그램 선택
- [STEP-7] 대상 플랫폼 'IEC1000_CE6_SDK' 선택
- [STEP-8] 응용 프로그램 종류 '대화상자 기반', '정적 라이브러리에서 MFC 사용' 체크
- [STEP-9] [IEC1000_CE6_SDK(ARMV4I)]설치 완료
IEC1000Series SDK(Win CE6.0) 을 설치하기 전 만들어진 프로젝트만 해당됩니다.
- IEC1000Series SDK 설치파일(Win CE 6.0 전용)이 설치 전
- IEC1000Series SDK 설치파일(Win CE 6.0 전용)이 설치 후
IEC1000 Series SDK(Win CE 6.0 전용)을 설치하신 후 신규 프로젝트를 만드시는 경우 아래의 내용은 필요하지 않습니다.
- [STEP-1] sln 파일 수정
IEC1000(WinCE7.0)에서 제작된 프로젝트에 IEC1000 Series SDK(Win CE 6.0 전용)을 적용하기 위해 기존 프로젝트의 sln 파일을 메모장에서 열기합니다.
- [*.sln 파일 수정사항 ]
GlobalSection(SolutionConfigurationPlatforms) = preSolution
... 생략 ... 아래 내용 추가▶ 추가 코드
Debug|IEC1000_CE6 (ARMV4I) = Debug|IEC1000_CE6 (ARMV4I)
Release|IEC1000_CE6 (ARMV4I) = Release|IEC1000_CE6 (ARMV4I)EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
... 생략 ... 아래 내용 추가▶ 추가 코드
{FB89C5C9-A482-49FD-B126-AA694C9F7963}.Debug|IEC1000_CE6 (ARMV4I).ActiveCfg = Debug|IEC1000_CE6 (ARMV4I)
{FB89C5C9-A482-49FD-B126-AA694C9F7963}.Debug|IEC1000_CE6 (ARMV4I).Build.0 = Debug|IEC1000_CE6 (ARMV4I)
{FB89C5C9-A482-49FD-B126-AA694C9F7963}.Debug|IEC1000_CE6 (ARMV4I).Deploy.0 = Debug|IEC1000_CE6 (ARMV4I)
{FB89C5C9-A482-49FD-B126-AA694C9F7963}.Release|IEC1000_CE6 (ARMV4I).ActiveCfg = Release|IEC1000_CE6 (ARMV4I)
{FB89C5C9-A482-49FD-B126-AA694C9F7963}.Release|IEC1000_CE6 (ARMV4I).Build.0 = Release|IEC1000_CE6 (ARMV4I)
{FB89C5C9-A482-49FD-B126-AA694C9F7963}.Release|IEC1000_CE6 (ARMV4I).Deploy.0 = Release|IEC1000_CE6 (ARMV4I)EndGlobalSection
- [STEP-2] VCPROJ 파일 수정
IEC1000(WinCE7.0)에서 제작된 프로젝트에 IEC1000 Series SDK(Win CE 6.0 전용)을 적용하기 위해 기존 프로젝트의 VCPROJ 파일을 메모장에서 열기 합니다.
- [*.vcproj 파일 수정사항 ]
GlobalSection(SolutionConfigurationPlatforms) = preSolution
... 생략 ... 아래 내용 추가
〈Platforms〉
... 생략 ...〈Platform
Name="IEC1000_CE6 (ARMV4I)"/〉〈ToolFiles
〈/ToolFiles〉
〈Configurations〉
... 생략 ...▶ 추가 코드
〈Configuration
Name="Debug|IEC1000_CE6 (ARMV4I)"〈/Configuration〉
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="1"
UseOfMFC="1"
CharacterSet="1"
〉
〈Tool
Name="VCPreBuildEventTool"/〉
〈Tool
Name="VCCustomBuildTool"/〉
〈Tool
Name="VCXMLDataGeneratorTool"/〉
〈Tool
Name="VCWebServiceProxyGeneratorTool"/〉
〈Tool
Name="VCMIDLTool"/〉
PreprocessorDefinitions="_DEBUG;_WIN32_WCE=$(CEVER);UNDER_CE"
MkTypLibCompatible="false"
〈ToolName="VCCLCompilerTool"/>
ExecutionBucket="7"
Optimization="0"
PreprocessorDefinitions="_DEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;WINCE;DEBUG;$(ARCHFAM);$(_ARCHFAM_);STANDARDSHELL_
UI_MODEL"
MinimalRebuild="true"
RuntimeLibrary="1"
UsePrecompiledHeader="2"
WarningLevel="3"
DebugInformationFormat="3"
〈Tool
Name="VCManagedResourceCompilerTool"/〉
〈Tool
Name="VCResourceCompilerTool"/〉
PreprocessorDefinitions="_DEBUG;_WIN32_WCE=$(CEVER);UNDER_CE"
Culture="1033"
AdditionalIncludeDirectories="$(IntDir)"
〈Tool
Name="VCPreLinkEventTool"/〉
〈Tool
Name="VCLinkerTool"/〉
AdditionalOptions=" /subsystem:windowsce,6.00"
LinkIncremental="2"
GenerateDebugInformation="true"
StackReserveSize="65536"
StackCommitSize="4096"
EntryPointSymbol="WinMainCRTStartup"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
〈Tool
Name="VCALinkTool"/〉
〈Tool
Name="VCXDCMakeTool"/〉
〈Tool
Name="VCBscMakeTool". /〉
〈Tool
Name="VCFxCopTool"/〉
〈Tool
Name="VCCodeSignTool"/〉
〈Tool
Name="VCPostBuildEventTool"/〉
〈DeploymentTool
ForceDirty="-1"/〉
RemoteDirectory=""
RegisterOutput="0"
AdditionalFiles=""
〈DebuggerTool
/〉
〈/Configuration〉
〈Configuration
Name="Release|IEC1000_CE6 (ARMV4I)"〉
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="1"
UseOfMFC="1"
CharacterSet="1"
〈Tool
Name="VCPreBuildEventTool"/〉
〈Tool
Name="VCCustomBuildTool"/〉
〈Tool
Name="VCXMLDataGeneratorTool"/〉
〈Tool
Name="VCWebServiceProxyGeneratorTool"/〉
〈Tool
Name="VCMIDLTool"/〉
PreprocessorDefinitions="NDEBUG;_WIN32_WCE=$(CEVER);UNDER_CE"
MkTypLibCompatible="false"
〈Tool
Name="VCCLCompilerTool"/〉
ExecutionBucket="7"
Optimization="2"
FavorSizeOrSpeed="2"
PreprocessorDefinitions="NDEBUG;_WIN32_WCE=$(CEVER);UNDER_CE;WINCE;$(ARCHFAM);$(_ARCHFAM_);STANDARDSHELL_UI_MOD
EL"
MinimalRebuild="false"
RuntimeLibrary="0"
UsePrecompiledHeader="2"
WarningLevel="3"
DebugInformationFormat="3"
〈Tool
Name="VCManagedResourceCompilerTool"/〉
〈Tool
Name="VCResourceCompilerTool"/〉
PreprocessorDefinitions="NDEBUG;_WIN32_WCE=$(CEVER);UNDER_CE"
Culture="1033"
AdditionalIncludeDirectories="$(IntDir)"
〈Tool
Name="VCPreLinkEventTool"/〉
〈Tool
Name="VCLinkerTool"/〉
AdditionalOptions=" /subsystem:windowsce,6.00"
LinkIncremental="1"
GenerateDebugInformation="true"
StackReserveSize="65536"
StackCommitSize="4096"
OptimizeReferences="2"
EnableCOMDATFolding="2"
EntryPointSymbol="WinMainCRTStartup"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
〈Tool
Name="VCALinkTool"/〉
〈Tool
Name="VCXDCMakeTool"/〉
〈Tool
Name="VCBscMakeTool"/〉
〈Tool
Name="VCFxCopTool"/〉
〈Tool
Name="VCCodeSignTool"/〉
〈Tool
Name="VCPostBuildEventTool"/〉
〈DeploymentTool
ForceDirty="-1"/〉
RemoteDirectory=""
RegisterOutput="0"
AdditionalFiles=""
〈DebuggerTool
/〉
[ Name = "소스 파일" Category 부분 ]
〈FileConfiguration
Name="Debug|IEC1000_CE6 (ARMV4I)"〈/FileConfiguration〉
〉
〈Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/〉
〈FileConfiguration
Name="Release|IEC1000_CE6 (ARMV4I)"〈/FileConfiguration〉
〉
〈Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/〉[ Name="소스 파일" Category 부분 ]
... 생략 ...주의
FileConfiguration
Name="Release|IEC667 (ARMV4I)"〈/FileConfiguration〉
ExcludedFromBuild="true"
〉
〈Tool
Name="VCResourceCompilerTool"
/〉
〈FileConfiguration
Name="Release|IEC1000 (ARMv4I)"
ExcludedFromBuild="true"
〉
〈Tool
Name="VCResourceCompilerTool"
/〉
〈/FileConfiguration〉
위와 같이 Name="Release|IEC667 (ARMV4I)" 또는 Name="Release|IEC1000 (ARMv4I)"가 존재하는 경우에만 아래 내용을 추가하여 줍니다.▶ 추가 코드
〈FileConfiguration
Name="Debug|IEC1000_CE6 (ARMV4I)"〈/FileConfiguration〉
ExcludedFromBuild="true"
〉
〈Tool
Name="VCResourceCompilerTool"
/
〈FileConfiguration
Name="Release|IEC1000_CE6 (ARMV4I)"〈/FileConfiguration〉
ExcludedFromBuild="true"
〉
〈Tool
Name="VCResourceCompilerTool"
/〉
- [STEP-3] *ncb 파일 삭제
- [STEP-4] Visual Studio에서 프로젝트 EVC 파일 실행(예.SmartADCEVC)
- [STEP-5] VisualStudio IEC1000_CE6(ARMV4I)지정 확인
- [STEP-6] [구성 관리자] → [솔루션 플랫폼] → IEC1000_CE6(ARMV4I) 표시 확인 후 [빌드], [배포] 체크
- [STEP-7] [빌드] → [솔루션 다시 빌드]
- [STEP-1] 해당 자료에 첨부된 파일을 다운받아 압축 해제하기
- [STEP-2] 다운로드한 [IEC1000HWCON.DLL]파일을 기존 프로젝트에 덮어쓰기
- [STEP-1] IEC1000HWCON.DLL 파일 → [속성]
- [STEP-2] [자세히] → 파일버전 확인 1.0.0.9
2. [CASE-2] Dot NET Compact Framework 3.5를 이용하여 C#, VB(Basic)로 프로그램 개발한 경우
3. [CASE-3] Dot NET Compact Framework 3.5를 이용하여 SmartX Framework를 C#, VB(Basic)로 프로그램 개발한 경우
- [STEP-1] [SmartX 홈페이지 www.smartx.co.kr] → [설치 파일] → [SmartX Framework 다운로드]
- [STEP-2] SmartX Framework Ver 5.0.0.5 설치 시작
대상 장치 : IEC1000-Series
- [STEP-3] 기존에 SmartX Framework 3.2.3 이전 버전으로 만든 프로젝트를 기반으로 5.0.0.5 버전의 프로젝트를 새로 만드시기 바랍니다.