我想做一个wince的远程更新功能
1.首先把PC的exe文件的二进制数据读出来,通过socket把二进制数据发到arm板上。
2.然后在arm板创建一个本地exe文件,通过socket接收二进制数据,填入exe文件中。
3.关闭arm板上的exe文件。
遇到的问题:
经过对比,arm板上生成的新exe文件和原有的exe文件内容完全一致,但是执行新exe文件时提示“不是有效的windows ce应用程序”。
创建文件:
exefile = CreateFile ( exe_path,
GENERIC_WRITE|GENERIC_READ,
FILE_SHARE_WRITE|FILE_SHARE_READ,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);
写exe内容
WriteFile(exefile,msg_buffer+7,msg_len-7,&bb,NULL)
关闭文件
CloseHandle(exefile);
也就是说我想用createfile函数创建一个exe文件,文件内容没问题,但是exe执行不了,提示“不是有效的windows ce应用程序”
缺少组件吧!!
PC上的应用程序在ARM上是运行不了的!!
不缺组件,我通过activesync拷贝过去的文件就能执行,同一个文件用createfile创建,然后把内容填进去就执行不了。
缺少组件吧!!
PC上的应用程序在ARM上是运行不了的!!
完全一样,我用activesync下载下来,ultraedit比较完全一样
如果ultraedit比较完全一样,那你把这个文件再用activesync传到设备上还能跑么?
activesync 传上去也执行不了。那不就是说明你这个exe文件不是wince exe文件。
你打不开不是很正常吗,不明白
你这个exe在PC下能运行吗?????
不是搞个PC上的过去吧!!
不知道你用的是什么软件,如果你用vc编译的exe文件在ARM上是不能运行的,你需要使用EVC来做。你说“不缺组件,我通过activesync拷贝过去的文件就能执行” 你用activesync拷贝过去的文件 在PC机上和ARM上都能运行吗? 这个是不可能的啊
引用: 引用 15 楼 twins222 的回复:
如果你用vc编译的exe文件在ARM上是不能运行的,你需要使用EVC来做。
这话会误导人家的.VC编译的exe文件在Arm上当然可以执行的,只要编译的时候选ARM的编译环境就可以了。
现在我理解你的情况是,有两个用ultraedit比一抹一样的文件,一个在CE上能跑起来,一个跑不起来?
反正我以前试过在vs2005下分别用ppc和armv4i下编译两个执行文件是有区别的
楼主的软件根本不能在这个机子运行,看情况就这样,有源码就用自己的平台SDK编译一遍。