EVC /PB /WinCE开发问题

EVC仿真环境的搭建  今天没去练车,穷折腾了一天,终于成功的让经典的“Hello World!”出现在SmartPhone的仿真其中了。稀里糊涂的装了无数的软件,有必要在此理清次序,以免日后再搭的时候抓瞎。    昨天选择Pocket PC 2003仿真器时EVC环境死翘的原因终于找到了,原因有两点,其一是因为在安装Pocket PC 2003 SDK时没有注意到我所下载的SDK版本是支持EVC4.0SP3的,主要为 阅读详情

 

1. 在ce自制平台中如何添加自己的驱动?cec文件和reg,bib文件有何区别?看混了,不知道如何才能让驱动注册到平台中。另外,reg和bib是我在编写驱动必须要自己写的么 

CE 的驱动分为本机驱动和流驱动,本机驱动你可以修改源码(在%_WINCEROOT%/PUBLIC/COMMON/OAK/DRIVERS),然后 build驱动源码,之后用PB编译内核。流驱动是以DLL的形式被系统程序加载的。加载流驱动要在注册表中添加信息,这和cec文件没关。如果你想把此驱动DLL和注册信息作为一个整体给别人使用,那么就要做一个cec文件,PB能够读取cec文件内容并加载到内核工程中。cec文件相当于安装程序。

2. 在应用程序中,如何向修改本机的ip 地址等网络参数,并使之立即生效? 

网络设置保存在注册表中,位置[HKEY_LOCAL_MACHINE/Comm/网卡名称/PARMs/TcpIp],例如常见的CS8900网卡设置: 

[HKEY_LOCAL_MACHINE/Comm/CS89001/PARMs/TcpIp] 

   "EnableDHCP"=dword:0 

   "DefaultGateway"="192.168.0.1" 

   "DNS"="111.111.111.111" 

   "UseZeroBroadcast"=dword:0 

   "IpAddress"="192.168.0.2" 

   "Subnetmask"="255.255.255.0" 

设置之后要生效有两种办法:一种热启动,调用KernelIoControl(IOCTL_HAL_REBOOT, NULL, 0, NULL, 0,  NULL),热启动时间很短暂;另外一种调用DevieceIoControl API,传递IOCTL= IOCTL_NDIS_REBIND_ADAPTER。

3. 如何定制自己的外壳 

1、先开发一个外壳软件,假设名称为MyShell.exe 

2、删除注册表[HKEY_LOCAL_MACHINE/init]下如下一行: 

   "Launch50"="explorer.exe" 

3、在注册表[HKEY_LOCAL_MACHINE/init]下添加如下一行: 

   "Launch50"="MyShell.exe" 

上述的“LaunchXX”中的XX为序列数,内核依据这个序列数按由小到大的顺序来分别执行所有子键列出的应用程序,具体数值应该为多少请参考帮助文档的说明。 

如果原来的内核中添加了标准外壳(standard shell)组件,或者添加了其它组件而这些组件需要依赖标准外壳,那么在PB中是无法删除标准外壳组件的,解决办法一是保留explorer.exe在内核中,二是删除依赖标准外壳的组件。 

4.  ARM系统外扩一片512K RAM,驱动程序经过映射可以使用这一段RAM。1、应用系统如何使用这一段RAM?要加一层驱动吗?2、如果要将这一段RAM当作RAM盘存储系统,该如何作呢?应该要加文件系统吧,如何加呢? 

解答这个问题前,先要说一下WINCE的地址映射机制。对于包含MMU(存储器管理单元)的处理器来说,如ARM和x86,WINCE要求OEM在定制内核的时候填写一个虚拟地址与物理地址映射关系的表,称为OEMAddressTable,在这个表中定义了所有物理设备的起始物理地址,对应的起始虚拟地址,地址空间大小,RAM就包括在其中(如果是x86平台还要求RAM起始虚拟地址从0x80000000开始)。如果有多片RAM,应该在 OEMAddressTable中将它们定义在一起,使之地址连续。对于非OEM的开发者来说,他们拿到的是定制好的内核,不能做任何修改,如果在产品中外扩一片RAM,只能通过API函数通知操作系统增加一条虚拟地址与物理地址映射关系表项。相关API函数有两个,分别是 CreateStaticMapping和VirtualCopy。它们的相同之处是都用于建立物理地址和虚拟地址的映射关系。它们的不同之处是 CreateStaticMapping映射的虚拟地址范围在0xC400 0000 到 0xE000 0000之间,这个范围只能由内核访问,一般用于ISR访问,因为ISR只能访问静态映射的虚拟地址空间,不能用VirtualCopy。VirtualCopy通常和VirtualAlloc配合使用,映射的虚拟地址空间在0x8000 0000以下,一般用于驱动程序和应用程序访问。 

1、应用程序要访问这片RAM,和驱动程序访问方法一样,调用VirtualAlloc和VirtualCopy。 

2、可以做一个流驱动程序专门用于读写这片RAM,这样所有应用程序就可以通过调用流驱动接口函数来访问,非要加文件系统也是可行的,通过修改注册表就可以做到,但是麻烦一些。

5..我怎么能在PB左边的定制平台加进我的驱动呢? 

两种办法: 

1、在platform.bib或者project.bib的MODULES部分添加一条语句,例如: 

 MyDriver.dll       C:/Driver/MyDriver.dll                     NK SH 

这样编译内核的时候就会把你的驱动DLL文件添加到内核中,如果有注册表需要设置,在platform.reg或者project.reg中添加注册表内容。 

2、通过制作.cec文件来添加驱动,制作.cec文件的优点是只需制作一次,以后就可以通过将.cec文件导入到PB的Catalog中,象PB自带的feature一样通过菜单“Add to OS Design”添加到左边的内核工程中。

6.  如何在PB中预先设定好存储内存和程序内存的大小,我想多划分一些空间给程序内存?  

两种办法: 

1、在定制内核时在config.bib文件中设置FSRAMPERCENT = number,具体number可参考标题为“FSRAMPERCENT ”的帮助文档。这种办法是修改内核的设置,所有一直有效。 

2、在应用程序中调用API SetSystemMemoryDivision,如果函数返回SYSMEM_CHANGED表示成功,如果返回SYSMEM_MUSTREBOOT表示需要热启动才能有效。这种办法需要每次启动后调用API才有效。 

 

包含Pwindbas.h头文件

  SetSystemMemoryDivision(512*2); //设置存储内存和程序内存,设置以后存储内存为4M

 

7.  修改了WINCE自带的驱动程序后如何编译?如果是自己开发的驱动程序如何编译? 

1、分为IDE方式和命令行方式。 

IDE 方式的编译很简单,以PB5.0为例,打开定制内核的工程,在左边的“workspace”—“FileView”中找到你已经修改了的目录,然后单击右键弹出菜单,在菜单中选择“Build and Sysgen Current Project”,这样PB就会编译指定的目录中的项目源码文件,然后执行sysgen命令根据source文件中的内容生成目标文件并复制到当前内核工程目录下。 

命令行方式的编译需要打开“Build OS” —“Open Release Directory”,以cd命令进入你已经修改的驱动程序目录中,然后键入“build –cfs”,然后键入 “sysgen –p 项目名称”,一般项目名称为source文件中的“TARGETNAME”。 

2、如果想完全自己开发驱动程序,建议直接采用EVC或者PB来编写编译。 

 

8.   nk.bin和nk.nb0有什么区别? 

这里提到的bin是一种二进制镜像格式,以片断(section)为单位组织数据,每个片断都包括一个头,头里指定了起始地址,长度,校验值。Platform Builder调用工具将WINCE内核所有文件以bin格式合并成一个文件,默认文件名为nk.bin。BootLoader又以同样的格式将nk.bin分解成多个文件放到RAM中。可以在命令行中键入 “viewbin nk.bin”来查看bin文件中具体包括了哪些内容。键入Cvrtbin命令转换.bin格式文件为.sre格式或者.abx格式。  

nb0格式是原始的二进制镜像,它不包括头,一般情况下将内核下载到设备的RAM中运行都采用nb0格式。要生成nbx格式的文件,需要在相关.bib文件中确定如下值:ROMSTART、ROMWIDTH、ROMSIZE。 

 

9.  flash中存放了BootLoader和内核镜像,如何把剩余flash部分划分为一个存储区域供应用程序读写? 

以WINCE 提供的驱动(FAT文件系统和MSFLASH驱动)来举例说明。如果采用默认common.reg中的注册表设置,那么MSFLASH驱动默认把整个 flash作为存储区域来读写,这不符合问题的要求,所以必须告诉MSFLASH驱动程序可供读写的区域的起始地址和长度。以下是一个注册表例子: 

[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/FASLD] 

    "Dll"="fasld.dll"        ///实际Flash存储器的驱动程序 

    "Order"=dword:2       ///该驱动程序相对于其它驱动程序的加载顺序 

    "Prefix"="DSK"        ///前缀 

    "Ioctl"=dword:4        ///IOCTL码,设备管理器加载驱动的时候调用IOControl函数,传递这个IOCTL码。 

"Profile"="MSFlash"    ///Profile名称,也就是[HLM/System/StorageManager/Profiles/MSFlash] 

///当设备管理器加载此驱动程序的同时发送通知给系统,IClass(GUID)的值表明这是一个存储设备的驱动程序。 

"IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"    

    "MemBase"=dword:00000000    ///Flash中可供读写区域的起始物理地址,也就是Flash的首地址+偏移量 

    "MemLen"=dword:00000000     ///Flash中可供读写区域的长度 

[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/MSFlash] 

    "DefaultFileSystem"="FATFS"   ///MSFlash驱动默认采用的文件系统 

    "PartitionDriver"="mspart.dll"    ///采用的分区驱动程序 

    "MountAsRoot"=dword:1        ///此目录作为文件系统的根目录 

    "Folder"="NOR Flash"          ///目录名称 

    "Name"="FLASH Disk Block Device"   ///Flash驱动名称 

 "PartitionDriverName"="MSPART" ///分区驱动名称 

 "AutoMount"=dword:1         ///自动装载检测到的分区 

    "AutoPart"=dword:1            ///自动分区 

    "AutoFormat"=dword:1          ///自动格式化分区 

[HKEY_LOCAL_MACHINE/System/StorageManager/AutoLoad/MSFlash] 

    "DriverPath"="Drivers//BuiltIn//FASLD"    ///Flash驱动在注册表中的位置 

    "LoadFlags"=dword:1                 ///这个值可以被设置为0、1、2。1表示同步加载,其它表示异步加载 

    "Order"=dword:0 

[HKEY_LOCAL_MACHINE/System/StorageManager/FATFS] 

    "FriendlyName"="FAT FileSystem"    ///文件系统名称 

    "Dll"="fatfsd.dll"                   ///文件系统驱动程序 

    "Flags"=dword:00000064             ///标志,详见帮助文档 

    "Paging"=dword:1                   ///是否分页 

    "EnableCache"=dword:1              ///是否允许缓存数据 

    "CacheSize"=dword:0                ///指定缓存大小,0表示默认 

 

10  驱动程序如何发通知给应用程序? 

这里介绍一下常见的两种办法。 

1、驱动程序调用API SendNotifyMessage,发送特定的消息给应用程序,这就要求应用程序要有消息循环机制并且要事先做好消息的处理。参数 1为窗口句柄,可以设置HWND_BROADCAST表示广播消息。要注意的是不要在参数中传递指针(虚拟地址),因为执行驱动程序的线程和应用程序并不在同一个进程空间中。解决办法可以利用内存映射文件技术,比如在驱动程序中创建一个内存映射文件对象,申请一块物理内存,然后把对象名称和内存长度传递给应用程序,应用程序打开同名的内存映射文件对象,读取里面的数据。对象名称可以事先协定好,也可以通过注册表来传递,内存长度是32位值,通过消息参数就可以传递,也可以通过注册表来传递。另外一种解决办法是在定制内核时候预留一块物理内存,这样驱动程序和应用程序都可以通过VirtualAlloc和 VirtualCopy来映射到同一块物理内存,其原理同内存映射文件技术一样,但是这块物理内存不具备通用性。最后一个办法是应用程序事先将一个缓冲区地址传递给驱动程序,驱动程序调用MapPtrToProcess映射应用程序传递过来的地址,当驱动程序调用SendNotifyMessage后应用程序可以直接到该地址中读取数据。 

设备管理器就是调用此函数广播WM_DEVICECHANGE消息的。另外WINCE的一个例子程序RNAApp在拨号连接建立的时候也是调用这个函数广播WM_NETCONNECT消息的。 

2、驱动程序调用API CeEventHasOccurred指明一个事件A发生,在此之前应用程序调用API CeRunAppAtEvent将驱动程序指明的A事件和一个应用程序名称相关联,或者和一个事件B相关联。这样当A事件发生时,如果指明和一个应用程序名称关联,那这个应用程序就会被启动。如果指明了和一个事件B相关联,那么等待事件B的线程将被激活。如果想了解当前系统内部所有驱动程序支持哪些类似事件A的事件,调用 API CeNotifyPublic_FilterEvent,在该API的帮助文档里也列举了常见的事件,例如 NOTIFICATION_EVENT_NET_CONNECT和 NOTIFICATION_EVENT_NET_DISCONNECT。

11.  如何让系统加载自己写的驱动程序?  

两种办法: 

1、在[HKEY_LOCAL_MACHINE/Drivers/BuiltIn]下添加注册键。 

2、在应用程序中调用ActivateDeviceEx。 

12.  使用VirtualAlloc和VirtualCopy的时候需要注意哪些事项? 

1、 VirtualAlloc的作用是申请虚拟地址空间,这肯定不是最终的目的,最终目的可能是申请物理内存、映射寄存器、提交文件等。没有一个目的会在意虚拟地址空间的位置,所以尽量传递参数1为0,也就是让WINCE自动分配虚拟地址空间。VirtualAlloc分配地址空间实际上是以64KB为单位,所以要指定申请的虚拟空间的首地址的话,参数1应该为64KB的整数倍,申请的长度也应该为64KB的整数倍,即使你不需要那么大。 

2、 VirtualCopy的主要作用是映射物理地址空间,如果参数2为物理地址,那么最后一个参数要添加PAGE_PHYSICAL,参数2必须是256的整数倍。如果参数2为虚拟地址(0x80000000以上),那么最后一个参数就不要添加PAGE_PHYSICAL,WINCE内核会根据这个虚拟地址找到对应的物理地址。 

 

13.   驱动程序和应用程序之间传递数据时何时调用MapPtrToProcess? 

因为设备管理器负责加载驱动程序DLL,这意味着当应用程序调用驱动程序接口函数的时候,WINCE内核会将调用驱动程序接口函数的线程转移到设备管理器的进程空间然后执行具体的驱动程序代码,应用程序和设备管理器处于两个进程空间,这就造成设备管理器无法访问应用程序传递的指针(虚拟地址),所以当我们在应用程序中传递指针给流驱动程序接口函数时,WINCE内核从中作了一个地址映射,例如ReadFile、WriteFile、DeviceIoControl函数的参数凡是指针都经过了映射才传递给驱动程序,所以很多驱动程序开发者并不了解其中的奥秘就可以编程了。但是如果参数是一个指向一个结构体的指针,而结构体里包括一个或多个指针,那么WINCE内核并不负责映射,所以就需要开发者在驱动程序接口函数中调用API函数MapPtrToProcess来映射地址。例如:pPointer_retval = MapPtrToProcess(pPointer, GetCallerProcess());  

 

14.  如何隐藏和显示winCE下标准外壳的任务栏? 

 HANDLE  hTaskBar = FindWindow(L"HHTaskBar", NULL);  

 ShowWindow(hTaskBar, SW_HIDE);  

 ShowWindow(hTaskBar, SW_SHOWNORMAL);  

15.  wince下如何让操作系统进入待机模式?又如何把它激活? 

通过注册表就可以设置,前提是你的驱动和硬件都支持。注册表项参见标题为“GWES Suspend Time-outs”的帮助文档。 

[HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Power] 

    "BattPowerOff"=dword:300 

    "ExtPowerOff"=dword:0 

    "WakeupPowerOff"=dword:60 

    "ScreenPowerOff"=dword:0 

 

 

 

 

 

 

 

 

16.  如何在不删除必要组件的前提下减小内核文件长度? 

要减小内核文件长度首先要在使用PB的定制内核向导中选择自定义,也就是说对于每个组件都由自己来选择,而不是选择PB的标准配置。但减小内核文件长度最有效最直接的办法是缩小字体,尤其对于东亚字体,采用字体压缩技术并且选择合理的字库文件将明显缩小文件长度。 

1、在定制内核时选择AGFA AC3 Font Compression组件。SYSGEN变量为SYSGEN_AGFA_FONT。 

2、参考标题为“East Asian Font Versions”的帮助文档,从中选择你需要的字库文件加到内核中,从文档可以看出加AC3压缩比不加压缩在文件长度方面差距很大。

17.   三星ARM平台如何定义自己的中断ID? 

以S3C2410 为例,在oalintr.h文件中定义中断ID,也称SYSINTR,例如 #define SYSINTR_MYINT   (SYSINTR_FIRMWARE+20),最大值不能超过SYSINTR_FIRMWARE+23。然后在ARMint.c文件中找到 OEMInterruptHandler函数,用if (IntPendVal == INTSRC_XXX) 判断当前发生的中断源号,然后返回 SYSINTR_MYINT。内核分别调用OEMInterruptDisable(禁止当前中断)、OEMInterruptDone(中断处理结束)、OEMInterruptEnable(当前中断有效)三个函数,参数都为中断ID,在这三个函数中用 case SYSINTR_MYINT判断当前要处理的中断。  

WinCE5.0开发环境的建立 本文主要介绍WinCE5.0开发环境的建立过程及注意事项。       目前WinCE5.0的开发工具主要有以下几种:Platform Builder5.0、EVC4.0+SP4、Visual Studio2005。其中Platform Builder主要用于定制WinCE操作系统,它也可以用来编写驱动程序和应用程序。EVC顾名思义就是嵌入式版的VC,它主要用来开发应用程序,当然也可用来编写驱 阅读详情

相关推荐

evc入门教程,望能有用

evc入门教程,包括一些实用例子,如:串口通信、网络通信等

evc大赛高分案例_第六届中国国际“互联网+”大学生创新创业大赛浙江省高教主赛道优秀项目第一期训练营成功举办...

9月14日至15日,第六届中国国际“互联网+”大学生创新创业大赛浙江省高教主赛道优秀项目第一期训练营在浙江工商大学成功举办。本期训练营由浙江省大学生创新创业大赛组委会组办,浙江工商大学承办,旨在贯彻落实《教育部关于举办第六届中国国际“互联网+”大学生创新创业大赛的通知》及我省相关文件精神,进一步激发高校学生创新创业热情,提高各校参赛作品质量。 9月14日上午举行了...

weixin_39624864的博客 4158

EVC入门教程

EVC入门教程!<br>

EVC的小技巧

//---------------------------------------------------------------------------//屏蔽CE系统桌面,每个窗体在初始化的时候调用//EnableDesktop(FALSE);//仅一个主窗体在退出时恢复屏蔽EnableDesktop(TRUE);//注:其他辅助窗体均不能恢复屏蔽!!仅主窗体恢复一次即可void Enable

oshj的专栏 5357

告别CPU空转!用STC8的SPI+DMA高效驱动上百颗WS2812B灯珠

本文详细解析了如何利用STC8单片机的SPI+DMA外设高效驱动WS2812B全彩灯珠,解决传统软件延时驱动方式在长灯带应用中的性能瓶颈。通过硬件方案设计、数据格式转换和DMA传输配置,实现高达400Hz的刷新率和低于5%的CPU占用率,适用于大规模灯光项目。

weixin_30847939的博客 397

宇树G1双足机器人SLAM开发环境搭建实战指南

SLAM(同步定位与建图)是机器人自主导航的核心技术。在双足人形机器人平台上,由于运动模型复杂、机身晃动带来高频IMU噪声,SLAM开发对环境配置和依赖管理提出了更高要求。以宇树G1为例,系统阐述如何通过Ubuntu 20.04、ROS Noetic与Docker容器化方案构建可复现的SLAM开发环境。先介绍依赖分层管理与版本锁定原理,再深入catkin工作空间编译、传感器驱动集成、网络与多机通信配置等工程实践,最后提供常见问题排查与避坑指南。这套方法论不仅适用于G1,也可迁移至其他双足或轮式机器人平台,帮

weixin_32025789的博客 274

EVC中常用技巧大全

1、动态改变控件的显示状态 隐藏控件:GetDlgItem(IDC_BUTTON1)->ShowWindow(SW_HIDE); 显示控件:GetDlgItem(IDC_BUTTON1)->ShowWindow(SW_SHOW); 2、隐藏基于MFC对话框应用程序窗口的方法: 1)通常情况下可以使用ShowWindow(SW_HIDE)方法去隐藏窗口,但是使用此功能有一个不足之处是在窗口

2503

数据标注的下一代SOP,可能不是Word,而是一段Prompt

再给几个反例:“这个只是正常纹理,不算。真正用于数据生产的Prompt,可能至少包含:任务定义、正例、反例、边界案例、优先级、输出格式、验收逻辑。一个项目100个人,如果100个人对这句话有100种理解,最后返工的就不是一个框,而可能是几十万帧数据。一个项目启动以后,项目经理先研究SOP,培训组长,组长再培训标注员,最后几百个人按照同一套规则干活。实际上一个成熟的项目经理,最重要的能力之一,就是:把客户的业务语言翻译成生产规则。真正让项目难交付的,从来不是80%的普通数据,而是那20%的长尾数据。

AI数据标注猿 296

EVC学习笔记

一.资源以及开发工具的获得1.微软CE开发资源(1)首页 http://msdn.microsoft.com/embedded/downloads/ce.net/default.aspx(2)eMbedded Visual Tools 3.0 - 2002 Edition http://www.microsoft.com/downloads/details.aspx?famil

实业兴国 实干报国 3892

IAR9.4报错之编码方式

IAR9.40编码方式错误导致的报错

qq_36081075的博客 2627

贝叶斯地理统计模型R-INLA-1

贝叶斯地理统计模型R-INLA-1

学习中 2426

【转】EVC /PB /WinCE开发问题

1. 在ce自制平台中如何添加自己的驱动?cec文件和reg,bib文件有何区别?看混了,不知道如何才能让驱动注册到平台中。另外,reg和bib是我在编写驱动必须要自己写的么 CE 的驱动分为本机驱动和流驱动,本机驱动你可以修改源码(在%_WINCEROOT%/PUBLIC/COMMON/OAK/DRIVERS),然后 build驱动源码,之后用PB编译内核。流驱动是以DLL的形式被系统程...

weixin_30896763的博客 213

移动端实战指南:深入理解 & 接入 IAB OMSDK

OMSDK(OpenMeasurementSDK)是IABTechLab推出的标准化测量工具,用于统一移动端/原生App广告的可见性和验证流程。其核心包括Native库(采集设备数据)和OMID JavaScript层(实现通信),通过标准化接口让开发者只需接入一套SDK即可兼容多个测量厂商,减少冲突和性能损耗。v1.4版本强化了对CTV和原生App场景的支持,而v1.5新增了画中画检测等功能。集成流程需通过IAB技术实验室注册下载,并遵循严格的命名空间规则。测试阶段需嵌入验证脚本并通过指定工具验证

帅次的博客 1194

第零步——建立wince开发环境

从今天开始做一些Wince开发,还涉及到一些wince下的directshow编程。研究了整整一天,终于建立好了编译开发环境。 1、wince开发不同于linux嵌入式开发,它需要几个支撑平台。首先是Platform Builder,这是微软出品专门用来开发wince的联机调试工具。应用Platform Builder,我们可以定制自己的产品上的wince内核,并支持内核级的调试,这就好像

guoyang1007的专栏 1728

模型/O功能之提示词模板

提示词可以被视为向大语言模型提出的请求,它们表明了使用者希望模型给出何种反应。提示词的质量直接影响模型的回答质量,决定了模型能否成功完成更复杂的任务。在LangChain框架中,提示词是由“提示词模板”(PromptTemplate)这个包装器对象生成的。每一个PromptTemplate类的实例都定义了一种特定类型的提示词格式和生成规则。在LangChain中,要想构造提示词,就必须学会使用这个包装器对象。

weixin_43961909的博客 1427

PMO与供应链管理的整合:端到端项目交付的优化策略

在当今全球化和市场竞争日益激烈的环境中,组织面临着前所未有的项目复杂性和交付压力。传统上相互独立的项目管理办公室(PMO)与供应链管理(SCM)正逐渐意识到:只有通过无缝整合,才能实现真正高效的端到端项目交付。本文深入探讨了PMO与供应链管理整合的战略价值、核心框架和实施路径,通过生动的比喻、实际案例和实用工具,展示了如何打破部门壁垒,构建协同高效的项目生态系统。无论您是PMO负责人、供应链专业人士还是高级管理层,都将从本文获得重塑项目交付模式、优化资源利用、降低风险并提升组织竞争力的宝贵见解和行动指南。

项目管理的博客 948

EVC通过网口调试WinCE设备方法

EVC通过网口调试WinCE应用程序,主要是将调试需要的三个文件(cemgrc.exe、cetlstub.dll、tcpipc.dll)打包到NK.bin文件中,然后安装对应的SDK,在EVC的tools菜单中设置SDK的属性,将Tranport为TCP/IP Transport for Windows CE方式,然后点击后面的Configure在弹出的对话框中,将Fixed Port选中,方便连

zhangyunnnio的专栏 1071

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

WinCE驱动开发问题精华集锦

在mediaplayer全屏播放的时候,我可以用键盘上的某一个键调节声音大小,现在我想在屏幕上显示调节的结果就跟我们看电视一样能出来一些标记。当声音变大在屏幕上就增多,当声音变小的时候就减少 得到播放窗口的DC,然后在上面显示一个不同颜色的矩形或者其它形状。 在ce自制平台中如何添加自己的驱动?cec文件和reg,bib文件有何区别?看混了,不知道如何才能让驱动注册到平台中。另外,reg和bib是我在编写驱动必须要自己写的么 CE 的驱动分为本机驱动和流驱动,本机驱动你可以修改源码(在%_WINCEROOT

happenhappy的专栏 3522

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

PB5.0/EVC4/VS2005 你们到底嘛关系?!

依旧迷茫中,想得越多,就越迷茫。。。这些天都在和PB5.0/EVC4/VS2005这三个软件打交道,搞晕了, 我现在想学习wince5.0的系统定制和驱动开发, 以后再顺便学学应用层开发(简单的)。 但是这软件啊,这么多。晕死了。 还有vs2008。到底我用哪个好啊,谁能给我解解惑啊?! 转载于:https://www.cnblogs.com/blinkin...

weixin_30483495的博客 210

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Windows CE 5.0 +eVC4的安装

北方工业大学 jack(嵌入式学生) 875

WinCE开发环境的搭建

有个客户提出要开发一个基于盘点机(实际上就是条码机,英文名check machine或者inventory machine)的应用程序,其OS是WinCE 5.0.于是了解了一下开发的流程及相关概念。 WinCE是MS针对嵌入式设备(包括PDA、掌上电脑及Smart Phone)等移动设备开发的操作系统,因此他与Windows操作系统还是有些区别。最大的区别就是嵌入式设备的硬件和软件千差万

一心两用 1万+

WinCE常遇问题及解决方法

在mediaplayer全屏播放的时候,我可以用键盘上的某一个键调节声音大小,现在我想在屏幕上显示调节的结果就跟我们看电视一样能出来一些标记。当声音变大在屏幕上就增多,当声音变小的时候就减少  得到播放窗口的DC,然后在上面显示一个不同颜色的矩形或者其它形状。     在ce自制平台中如何添加自己的驱动?cec文件和reg,bib文件有何区别?看混了,不知道如何才能让驱动注册到平台中。另外,reg

3015
上一篇: phoneME Project Descrpition
下一篇: GPS的A4时代
普通网友
普通网友 领域专家: 编程技术技术领域 领域专家: 编程技术技术领域
博客等级 码龄25年 2837粉丝 6原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值