WinCE下的流驱动

来源:互联网 发布:济南seo平均工资 编辑:程序博客网 时间:2024/05/16 17:16

二种方法加驱动--->NK.bin

方法一:
   1. dll文件放到 C:/WINCE500/PLATFORM/AT4X0BD/FILES目录中.

   2. platform.reg
      ;----------------------------------------------------------------------------
      ;MyDriver.dll  //20080305
      ;----------------------------------------------------------------------------
      [HKEY_LOCAL_MACHINE/Drivers/BuiltIn/MyDevDrv]
      "Prefix"="STR"
      "Dll"="MyDriver.dll"
      "Order"=dword:1

   3. platform.bib
      ;------------------------------------------------------
      ;MyDriver.dll  //20080305
      ;------------------------------------------------------
      MyDriver.dll     $(_FLATRELEASEDIR)/MyDriver.dll     NK SH


   调用方法:
      HANDLE hStr=CreateFile(TEXT("STR1:"), GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0);
   
      if (INVALID_HANDLE_VALUE == hStr)
      {
        ::MessageBox(NULL, _T("Cannot open STR1:"), _T("StringApp"), MB_OK);
        return;
      }
 
      // Write a string to the driver.
      DWORD  dwWritten = 0;
      WCHAR* pString   = TEXT("This is a test of the String Driver. This is o-nly a test");
      WriteFile(hStr, pString, (_tcslen(pString)+1), &dwWritten, NULL);

      // Read string from driver.
      WCHAR wch[BUFFER_SIZE];
      DWORD dwBytesRead = BUFFER_SIZE;
      memset(&wch, '/0', BUFFER_SIZE * sizeof(WCHAR));
      ReadFile(hStr, wch, sizeof(wch), &dwBytesRead, NULL);
      ::MessageBox(NULL, wch, TEXT("StringApp"), MB_OK);
 
      // Disconnect from driver.
      CloseHandle(hStr);

 

 

方法二:

       为了让CEPB Debug代码.
     
       1. 在platform/CPU's folder/drivers 下新建一个目录,然后在drivers目录中的dirs文件中加入以你刚          新建的目录名.

       2. 在刚新建的目录下,新建你的C源代码文件,在其中实现上面所述的函数,及其功能。
          新建名称分别为sources, makefile, mydev.def的文件。

          (1)      
          makefile: 只需要这样一行
          !INCLUDE $(_MAKEENVROOT)/makefile.def

          (2)
          mydriver.def
          LIBRARY     MyDev(这个字符串要和将要生成的动态库的文件名一样)
         
          EXPORTS
          XXX_Init
          XXX_Deinit
          XXX_Open
          XXX_Close
          XXX_PowerOff
          XXX_Power_Down
          XXX_IOControl

          (3)
          Sources:
          TARGETNAME=MyDev  (指定要生成的动态库的名称)
          TARGETTYPE=DYNLINK (指定要生成的是一个动态库)
          (下面两项指定需要与哪些动态库链接, 一般要第一项就足够了)
          TARGETLIBS=$(_COMMONSDKROOT)/lib/$(_CPUINDPATH)/coredll.lib /
                     $(_COMMONOAKROOT)/lib/$(_CPUINDPATH)/ceddk.lib

          DEFFILE=MyDev.def (指定def文件)

          DLLENTRY=DllEntry (指定动态库的入口函数)

          SOURCES= (请在这写上你所有源文件的名字,它们将会被编译)

   
   //也必须修改.bib, .reg等文件,这样系统才能调用.
   (4) platform.reg
      ;----------------------------------------------------------------------------
      ;MyDriver.dll  //20080305
      ;----------------------------------------------------------------------------
      [HKEY_LOCAL_MACHINE/Drivers/BuiltIn/MyDevDrv]
      "Prefix"="STR"
      "Dll"="MyDriver.dll"
      "Order"=dword:1

   (5) platform.bib
      ;------------------------------------------------------
      ;MyDriver.dll  //20080305
      ;------------------------------------------------------
      MyDriver.dll     $(_FLATRELEASEDIR)/MyDriver.dll     NK SH


 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 练瑜伽后弯腰疼怎么办 练完瑜伽腰椎疼怎么办 瑜伽开髋动作受伤怎么办 才学瑜伽教培上课紧张怎么办 瑜伽馆不给退费怎么办 脚运动后酸痛该怎么办 婴儿误吞拉链头怎么办 肠功能蠕动慢便秘怎么办 胃肠型和蠕动波怎么办 胃不蠕动了怎么办偏方 喂母乳母亲奶头裂开怎么办 给宝宝吃奶被吃到奶头裂开怎么办 宝宝吃奶奶头裂开了怎么办 小孩吃奶奶头裂开了怎么办 站久坐久腰酸痛怎么办 孕39周胎儿头小怎么办 怀孕腰两侧长肉怎么办 怀孕四个月半月吃点就饱怎么办啊 怀孕四个月睡眠不好怎么办 二胎七个月肚子太大怎么办 上火牙疼牙龈肿怎么办 孕30周乳房胀痛怎么办 怀孕长妊娠纹了怎么办 坐久了肚子胀疼怎么办 怀孕后胖的太快怎么办 怀孕牙齿全坏了怎么办 怀孕脸胖了好多怎么办 孕晚期不爱吃肉怎么办 怀孕期间胖了怎么办啊 孕期长得太胖怎么办 狗吃马肉脸肿了怎么办 狗过敏了脸肿了怎么办 孕初期外阴很痒怎么办 怀孕了吃了田鸡怎么办 孕妇睡眠质量差怎么办吃什么 39周2天了还不生怎么办 孕中期体重猛长怎么办 4个半月胎位不正怎么办 41周不产生宫缩怎么办 生完孩子胎盘没有脱落怎么办 39周还是臀位怎么办