Wince下演示系统自启动/加载dll方法

前面我们已经介绍过了Wince开机画面,自启动方法了。

今天主要是介绍我们演示系统是如何实现的自运行和加载Dll的方法。

之前我们碰到的主要问题是这样的:

1.在catalog items下加载 Sotorage Devices--MSFLash- Drivers--Flash MDD.

这样,Wince下就可以看到NandFlash的盘符,并且修改注册表/校准鼠标后都可以保存下来。

但是,此时是不能用飞凌提供的程序自启动的,且dll也无法自动加载。

2.在catalog items下不加载 Sotorage Devices--MSFLash- Drivers--Flash MDD.

这样,Wince下就只看到NandFlash的文件夹图标,修改注册表/校准鼠标后都不可以保存下来。

但是,此时是可以用飞凌提供的程序自启动的,且dll是可以自动加载的。

我们解决的方法如下:

不再用make的方式,而是直接build的时候加载dll和exe。方法如下:

1.将ftdi_ser.dll,MotorWince.exe, MotorWince.lnk放入

C:\WINCE600\PLATFORM\SMDK6410\FILES目录下。

2.修改此目录下的platform.bib,在files下增加

MotorWince.exe $(_FLATRELEASEDIR)\MotorWince.exe NK H

MotorWince.lnk $(_FLATRELEASEDIR)\MotorWince.lnk NK H

ftdi_ser.dll $(_FLATRELEASEDIR)\ftdi_ser.dll NK U

3.修改此目录下的platform.dat,在其中加入

Directory("\Windows\Startup"):-File("MotorWince.lnk","\Windows\MotorWince.lnk")

4.修改此目录下的platform.reg,在其中加入

[HKEY_LOCAL_MACHINE\init]

"Launch80"="MotorWince.exe"

"Depend80"=hex:1e,00

[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\FTDI_DEVICE]

"Prefix"="COM"

"Dll"="ftdi_ser.dll"

"ConfigData"=hex:\

01,00,3f,3f,10,27,88,13,c4,09,e2,04,71,02,38,41,9c,80,4e,c0,34,00,1a,00,0d,\

00,06,40,03,80,00,00,d0,80

"InitialIndex"=dword:00000000

"DeviceArrayIndex"=dword:00000000

"LatencyTimer"=dword:00000010

[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\1027_24577\Default\Default

\FTDI_DEVICE]

"DLL"="ftdi_ser.dll"

[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\Default\Default\255\FTDI_DEVICE]

"DLL"="ftdi_ser.dll"

5.现在再build,就可以了。。。

时间: 2024-10-12 10:07:35

Wince下演示系统自启动/加载dll方法的相关文章

ARM架构下linux设备树加载的方法

引入设备树后bootloader加载DTB方法: 1. 标准方法 将linux kernel放到内存地址为<kernel img addr>的内存中. 将DTB放到地址为<dtb addr>的内存中. 在u-boot下通过下面的命令启动内核: bootm <kernel img addr> – <dtb addr> 2.兼容方法 配置内核CONFIG_ARM_APPENDED_DTB选项,将DTB放到紧跟内核后面的地址. 具体方法如下: 1)将DTB放到内核

java 加载dll介绍(转)

最近在做的工作要用到本地方法,需要在Java中加载不少动态链接库(以下为方便延用Windows平台下的简写dll,但并不局限于Windows).刚刚把程序跑通,赶紧把一些心得写出来,mark.也希望对大家的类似工作有所帮助 首先,应当明确,dll有两类:(1)Java所依赖的dll和,(2)dll所依赖的dll.正是由于第(2)种dll的存在,才导致了java中加载dll的复杂性大大增加,许多说法都是这样的,但我实验的结果却表明似乎没有那么复杂,后面会予以详细阐述. 其次,Java中加载dll的

asp.net调用非托管dll,无法加载 DLL,找不到指定模块解决方法。

最近开发一个项目,里面用到了非.net开发的一个dll文件接口,发现发布到window2003服务器上后,运行网站总是提示 "无法加载 DLL"D:\11\1.dll": 找不到指定的模块. (异常来自 HRESULT:0x8007007E). "这个错误.但是我在本地xp系统上调试是可以的. dll使用com调用如下 [DllImport(@"D:\11\1.dll", EntryPoint = "aaa", CharSet

内存加载DLL

1.前言 目前很多敏感和重要的DLL(Dynamic-link library) 都没有提供静态版本供编译器进行静态连接(.lib文件),即使提供了静态版本也因为兼容性问题导致无法使用,而只提供DLL版本,并且很多专业软件的授权部分的API,都是单独提供一个DLL来完成,而主模块通过调用DLL中的接口来完成授权功能.虽然这些软件一般都采用了加壳和反调试等保护,但是一旦这些功能失去作用,比如脱壳,反反调试,HOOK API或者干脆写一个仿真的授权DLL(模拟授权DLL的所有导出函数接口),然后仿真

LoadLibrary无法加载DLL解决思路

用LoadLibrary和GetProcAddress加载DLL时,可能会碰到LoadLibrary无法正确加载DLL,返回值总是NULL的情况.一般而言,可按下面的思路解决: (1)检查dll的路径是否正确. 可先用绝对路径试一下,若可以,那说明相对路径设置错了.简单的测试当面目录的方法就是随便写一个文件,比如std::ofstream outfile("test.txt"),然后看输出的test.txt文件在哪,就知道当前目录是哪了,然后依据它设置相对目录. (2)检查LoadLi

C#无法加载 DLL 找不到指定的模块 (转)

一个dll组件不能调用导致异常,在网络上搜索发现三个版本的解决方案: 方案一 将XXXX.dll(提示找不到的组件)拷贝到项目文件夹中bin目录下 方案二 把XXXX.dll(提示找不到的组件)拷贝到system32目录下 方案三 ====================================原文=========================================== 最近继续用ASP.Net来重新开发ACM的Online Judge系统,因为要进行进程的监控,所以自己编

[转]System.DllNotFoundException: 无法加载 DLL“*.dll”: 内存位置访问无效。 (异常来自 HRESULT:0x800703E6)

我在使用地税发票控件进行开票的测试的时候,在xp上测试时正常的,在别人的win7系统测试也是正常,但我在我本机确不正常.我本机装的是msdn版本win7系统,这个系统比较原装. 错误信息如下: 2012-07-21 06:30:08,546 [1] ERROR - ThreadException caught System.DllNotFoundException: 无法加载 DLL"GdltaxIA.dll": 内存位置访问无效. (异常来自 HRESULT:0x800703E6).

无法加载 DLL“ParkCOM.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E) 终结者

C#调用利用C++写的dll 常遇到的情况是无法加载DLL"***.dll":找不到指定的模块(异常来自HRESULT:0x8007007E)终极解决方法如下: 1.产生原因 可能存在 老版本程序正常,在新的版本中调用异常问题,可能本地电脑系统缺乏相关的支持DLL 2.要解决此方法 就是用工具软件终极杀手锏,下载安装depend walk查看依赖关系,看你的dll到底还调用了那些dll, 至于depend显示的IESHIMS.DLL,比如: 这些才是至关重要的却是信息,然后通过这些提示

10.下拉刷新、加载更多、标记已读、轮播条、缓存

下拉刷新.加载更多.标记已读.轮播条.缓存 下拉刷新------- 1.addHeaderView必须在setAdapter之前调用 2.将paddingTop设置一个headerView高度的负值去隐藏它 getHeight()和getMeasuredHeight()的区别: getMeasuredHeight():获取测量完的高度,只要在onMeasure方法执行完,就可以用 它获取到宽高,在自定义控件内部多使用这个 使用view.measure(0,0)方法可以主动通知系统去测量,然后就