300问个小问题

zdyjilin   2008-5-8 11:38 楼主
为什么有的用EVC建的EXE程序,在PC机上看不到EXE程序属性页的版权信息呢?
欢迎大家回答!
图1:
图2:

回复评论 (20)

平生第一次在eeworld里帖图,没贴上,再帖一次.
创建时先的是WCE Aplication--->A simple window ce aplication
图1:





图2:

点赞  2008-5-8 11:56
奇怪啊,我这个是有的啊
点赞  2008-5-8 12:39
真是财大气粗啊,哈哈。不过这种情况,还真没见过。
点赞  2008-5-8 12:49
经测试,可能和sdk有关。

standard sdk_500: wce5
standard sdk:     wce4.2
armv4i
armv4t
MIPS16
MIPSII_FP
MIPSII
MIPSIV_FP
SH3
SH4
X86             :都没有version

pocket pc 2003 sdk:
armv4
emulator    :都有version
点赞  2008-5-8 13:06
冲300分进来的,可是回答不了问题。
点赞  2008-5-8 13:26
我的armv4i是有的....
点赞  2008-5-8 13:37
谢谢大家,上面的问题已自行解决,找到了问题所在.
通过exeScope对能显示的程序和不能显示的程序进行比较,
发现不能显示的程序里的VS_VERSION_INFO加了引号,变成了字符串.
其实应当是一个#define VS_VERSION_INFO 1
(PS:只怪自己太大意,没看清引号,但确实是用同样的方法创建的,呵呵)

还有一个相关的问题想请教一下:
如何在预编译阶段通过代码来设置VS_VERSION_INFO里的相关显示信息.
主要用来设置一下程序运行的CPU的类型.


点赞  2008-5-8 15:37
刚又试了一下,感觉是SDK的一个BUG.
用选emulator加版权资源时,没带引号,
切换至ARMV4I时它自已就带上引号了,此时你再切换到emulator,引号还在,必须手工清除.
点赞  2008-5-8 16:01
file name :newres.h
发现是这段代码的原因:
注释掉部分代码后执行 aygshell.h后就都有version了。


//        #if defined(WIN32_PLATFORM_PSPC) && (_WIN32_WCE >= 300)
                #include
/*        #else
                #define I_IMAGENONE                (-2)
                #define NOMENU                        0xFFFF
                #define IDS_SHNEW                1

                #define IDM_SHAREDNEW        10
                #define IDM_SHAREDNEWDEFAULT 11
        #endif*/

点赞  2008-5-8 16:16
lz是在哪里改引号的?我怎么没找到?
点赞  2008-5-8 16:18
不懂
点赞  2008-5-8 16:28
to lenux :
创建时我选的是WCE Aplication--->A simple window ce aplication

没有用到aygshell.h,也没有newres.h
点赞  2008-5-8 17:30
切换至ARMV4I时它自已就带上引号了

// 这改变了什么?
点赞  2008-5-8 17:41
奇怪了,我就是按你说的这个建立的程序!!!

就是有newres.h

郁闷,难道我的evc乱了
点赞  2008-5-8 18:20
平台配置,有时候比较难搞。
点赞  2008-5-8 19:28
引用: 引用 14 楼 lenux 的回复:
奇怪了,我就是按你说的这个建立的程序!!!

就是有newres.h

郁闷,难道我的evc乱了


我的也是这样的
点赞  2008-5-8 19:56
1、使用MFC创建对程序即可。

2、WCE Aplication--->A simple window ce aplication    在 ARMV4I下是没有的。。

点赞  2008-5-8 20:51
to lenux :
对不起哦,我的项目里也有newres.h,
并且按你说的进行修改,确实也可以正常显示.

虽然问题解决了,但还有一些没弄明白,我猜想aygshell有VS_VERSION_INFO和"VS_VERSION_INFO"通吃(兼容)的功能.

为什么在newres.h中强制#include  就可以显示.

经试验,按如下修改也是可行的:


  1. //        #if defined(WIN32_PLATFORM_PSPC) && (_WIN32_WCE >= 300)
  2.                 #include
  3. //        #else
  4.                 #define I_IMAGENONE                (-2)
  5.                 #define NOMENU                        0xFFFF
  6.                 #define IDS_SHNEW                1

  7.                 #define IDM_SHAREDNEW        10
  8.                 #define IDM_SHAREDNEWDEFAULT 11
  9. //        #endif
点赞  2008-5-9 09:08
还好我上来看了一眼,差点重装evc了。

至于理由估计只有进入aygshell才能明白了。
点赞  2008-5-9 09:29
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复