NK.BIN打包生成(文件,目录&注册表)

本Notes讲述如何在NK.BIN中增加文件,如何在WINCE中设置目录,并将特定文件放置在特定目录,同时修改注册表。


注意:

这些文件都位于对应的工程目录...\Wince600\...\OAK\files下面;

本文使用的开发环境为WINCE6,其他环境可以做参照;

 

1: 在NK.BIN中增加文件(到\WINDOWS目录下)

目的:

在WINCE启动的过程中,启动文件都是从NK.BIN总解出来的,当你调试应用程序或者驱动的时候,一些常用的调试工具每次都拷贝比较麻烦,当你开发完毕的驱动程序和应用程序,要想在每次开机的时候系统中都有,每次拷贝也是比较麻烦的,所以,我们可以将我们所需要的文件直接做到NK.BIN中

 

方法:

修改...\files\project.bib,具体的语法和格式可以参照BIB文件描述
StartLog.lnk       F:\BINS\TRACE\StartLog.lnk                       nk

增加一个StartLog.lnk文件到WINCE目标板下 \windows下;
这个文件存储在XP系统的F:\BINS\TRACE\StartLog.lnk;
后面NK必须;

 

检查:使用新的NK.BIN文件开机运行后,检查\windows目录下是否存在该文件;

2:在WINCE设置目录,放置文件;

目的:

我们在实际应用WINCE的过程中,不可避免的要对其中的文件对定制,文件目录做定制,比如常用的文件放置到桌面上,或者相同类型的文件放置到特定的目录下....

 

方法:

修改...\files\project.dat,体的语法和格式可以参照BIB文件描述

//在根目录下增加一个\drvdebug目录
root:-Directory("drvdebug") 

 

//在根目录下增加一个GPI.DLL目录,来源于WINCE启动后的\Windows\gpi.dll
; Directory("\"):-File("gpi.dll", "\Windows\gpi.dll")

 

//在\drvdebug下面增加一个文件,同上
Directory("\drvdebug"):-File("celogreg.exe", "\Windows\celogreg.exe") 
Directory("\drvdebug"):-File("GPITest.exe", "\Windows\GPITest.exe") 

 

//在桌面增加一个快捷方式,同上

Directory("\Windows\Desktop"):-File("CeLogStopFlush.exe", "\Windows\CeLogStopFlush.exe")

 

检查:系统使用新的NK.BIN启动,检查对应的目录和文件是否存在


3:修改注册表

目的:在实际应用WINCE的过程中,有一些情况,我们需要在注册表中增加键值,比如,一个驱动的增加

方法:

修改...\files\project.reg,这个REG和WINDOWS下的REG格式一样
[HKEY_LOCAL_MACHINE\System\CeLog]                                                                                                                        
    "Transport"="LocalFile"                                                                                                                              
    "FileName"="celog.clg"                                                                                                                               
    "ZoneCE"=dword:800000  

 

验证:在编译完成的REG中可以信号到对应的选项

 

说明:

这部分代码在编译后,等同于执行:
HANDLE HandleDriver = INVALID_HANDLE_VALUE;         /* 驱动程序句柄     */
HANDLE hFile             = INVALID_HANDLE_VALUE;         /* 设备文件操作句柄 */
HKEY hDrvKey            = NULL;                                     /* 注册表操作句柄   */

// Simple Driver 注册表信息
WCHAR *szRegKey = L"System\\CeLog";
WCHAR *szTransport = L"LocalFile";
WCHAR *szFileName = L"http://www.cnblogs.com/hpunix/admin/file://celog.clg/";
DWORD DrvIndex = 0x800000;


// 向注册表写入一个字符串
#define WRITE_REG_SZ(Name, Value) RegSetValueEx(hDrvKey, Name, 0, REG_SZ, (LPBYTE)Value, \
                                  (wcslen(Value)+1)*sizeof(WCHAR))

// 向注册表写入一个 DWORD 型的值
#define WRITE_REG_DWORD(Name, Value) {DWORD dwValue = Value; RegSetValueEx( hDrvKey, Name, \
                                      0, REG_DWORD, (LPBYTE)&dwValue, sizeof(DWORD)); }

int _tmain(int argc, _TCHAR* argv[])
{
     LONG nErr;
     DWORD dwDisp;

    // 创建注册表键HKEY_LOCAL_MACHINE\System\\CeLog

    nErr = RegCreateKeyEx(HKEY_LOCAL_MACHINE, szRegKey, 0, L"", 0, 0, NULL, &hDrvKey, &dwDisp);
    if (nErr != ERROR_SUCCESS)
    {
        printf("创建驱动注册表子键失败!\n");   
        return 0;
    }
    else
    {   
        // 往注册表添加内容
        WRITE_REG_SZ( L"Transport", szTransport);              /* 写入 "Prefix"="SPL" */
        WRITE_REG_SZ( L"FileName", szFileName);                 /* 写入 "Dll"="http://www.cnblogs.com/hpunix/admin/file://SimpleDriver.dll/" */
        WRITE_REG_DWORD( L"ZoneCE", DrvIndex);             /* 写入 "Index"=dword:0 */
     }

     return 0;
}

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值