创建exe程序失败,请高手帮忙!

kuang_xiang   2009-11-20 14:45 楼主
我想做一个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);

回复评论 (18)

不明白
点赞  2009-11-20 14:55
也就是说我想用createfile函数创建一个exe文件,文件内容没问题,但是exe执行不了,提示“不是有效的windows ce应用程序”
点赞  2009-11-20 14:57
缺少组件吧!!
PC上的应用程序在ARM上是运行不了的!!
点赞  2009-11-20 14:58
不缺组件,我通过activesync拷贝过去的文件就能执行,同一个文件用createfile创建,然后把内容填进去就执行不了。
点赞  2009-11-20 15:00
两个文件二进制比较过么?完全一样的?
点赞  2009-11-20 15:17
缺少组件吧!!
PC上的应用程序在ARM上是运行不了的!!
点赞  2009-11-20 15:23
完全一样,我用activesync下载下来,ultraedit比较完全一样
点赞  2009-11-20 15:23
怀疑是不是wince的exe格式有什么特殊规定
点赞  2009-11-20 15:23
如果ultraedit比较完全一样,那你把这个文件再用activesync传到设备上还能跑么?
点赞  2009-11-20 15:29
createfile属性值可能有问题~~~
点赞  2009-11-20 15:36
传上去也跑不了,但是程序对比是一样的
点赞  2009-11-20 15:38
activesync 传上去也执行不了。那不就是说明你这个exe文件不是wince exe文件。
你打不开不是很正常吗,不明白
点赞  2009-11-20 17:08
你这个exe在PC下能运行吗?????
不是搞个PC上的过去吧!!
点赞  2009-11-20 17:28
引用: 引用 4 楼 ou_mygod 的回复:
不缺组件,我通过activesync拷贝过去的文件就能执行,同一个文件用createfile创建,然后把内容填进去就执行不了。

看错了,上面那当我没说  呵呵!
点赞  2009-11-20 17:29
不知道你用的是什么软件,如果你用vc编译的exe文件在ARM上是不能运行的,你需要使用EVC来做。你说“不缺组件,我通过activesync拷贝过去的文件就能执行” 你用activesync拷贝过去的文件 在PC机上和ARM上都能运行吗? 这个是不可能的啊
点赞  2009-11-20 17:57
引用: 引用 15 楼 twins222 的回复:
如果你用vc编译的exe文件在ARM上是不能运行的,你需要使用EVC来做。

这话会误导人家的.VC编译的exe文件在Arm上当然可以执行的,只要编译的时候选ARM的编译环境就可以了。
现在我理解你的情况是,有两个用ultraedit比一抹一样的文件,一个在CE上能跑起来,一个跑不起来?
点赞  2009-11-20 18:10
反正我以前试过在vs2005下分别用ppc和armv4i下编译两个执行文件是有区别的
点赞  2009-11-20 18:15
楼主的软件根本不能在这个机子运行,看情况就这样,有源码就用自己的平台SDK编译一遍。
点赞  2009-11-21 10:19
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复