본문 바로가기

Hello CE,Mobile

[Transcriber] system touch dll name in registry is not transcriber's dll

======================================================================

WIN CE6.0 Transcriber

======================================================================

Error msg : system touch dll name in registry is not transcriber's dll



platform.reg

[HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\TOUCH]

    "DriverName"="touch.dll"

platform.bib

    touch.dll      $(_FLATRELEASEDIR)\touch.dll                     NK  SHQM

Q 플래그: 커널영역 과 유저 영역에서 사용가능한 FLAG


reg 와 bib 를 위와 같이 수정하였는데도 계속 위와 같은 에러 메시지가 발생한다면 touch 드라이버의 sources 에서 다른 종속적인 dll 을 사용하는지에 대해서 봐야 한다. 

Touch dll 은 k.touch.dll 과 touch.dll 이 생성되는데 k.touch.dll 을 드라이버에서 사용하고

touch.dll 을 Transcriber 가 사용해야지 정상작동을 하게 된다. 

그런데 만약 touch.dll 이 a.dll 을 로딩을 한다고 하고 platform.bib 에 

a.dll      $(_FLATRELEASEDIR)\a.dll                     NK  SHMK

속성으로 지정 되어 있다고 가정을 한다면

k.touch.dll 은 커널단에서 a.dll 을 로딩 하기 때문에 정상적으로 로딩이 되지만 

유저영역인 touch.dll은 a.dll 을 로딩하지 못하는 결과를 가져 온다. 

그렇기 때문에 transcriber 에서는 위그림과 같은 메시지가 발생한다. 

해결방법은 

a.dll      $(_FLATRELEASEDIR)\a.dll                     NK  SHQM  

Q 플래그를 사용하여 커널과 유저 영역 모두 사용하게 하면은 정상적으로 transcriber 가 동작된다. 



'Hello CE,Mobile' 카테고리의 다른 글

어셈 DCD  (0) 2014.01.24
__stdcall 과 __cdecl 의 차이점  (0) 2014.01.14
WINCE6 프로젝트 시작  (0) 2013.12.06
CE 그림파일 확장자 연결 프로그램 등록  (0) 2013.11.28
WIN32 API  (0) 2013.11.07