| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1906 人关注过本帖, 1 人收藏
标题:向hellovfp大哥及各位论坛大牛请教关于windows编程文字输出的问题
只看楼主 加入收藏
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
回复 30楼 有容就大
缺少VC运行库,没有看到,呵呵。
另外告诉你专业的ICON制作流程:用CoreDraw或是 Illustrator矢量软件制作ICON,然后在PS里润色,最后生成PNG格式。

[ 本帖最后由 hellovfp 于 2012-4-21 13:28 编辑 ]

我们都在路上。。。。。
2012-04-21 13:26
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 31楼 hellovfp
我在VS2010下搞的 你没装VS吗?

梅尚程荀
马谭杨奚







                                                       
2012-04-21 13:30
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
回复 32楼 有容就大
不好意思,偶的机器太老了,只装到vs2005就没敢更新版本了。
鄙夷一下偶的机器吧。。哈哈。

我们都在路上。。。。。
2012-04-21 13:45
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
这么好的技术 用的机器貌似配你不上啊

梅尚程荀
马谭杨奚







                                                       
2012-04-21 13:50
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
回复 34楼 有容就大
这是偶以前研究vc2005程序发布的一些研究,或许对你有用:

 由于2005和2008版本采用了manifest文件进行配置,据说是为了解决DLL Hell问题,(但不知道为什么2010版又取消了这个必要的配置),所以如果直接把生成的EXE文件拷到其它机器上,就会得到一个“应用程序配置不正确,应用程序不能启动”典型的运行错误对话框。参考了网上的一些文章,解决方法就三种,一种是静态链接发布,好像是废话,缺点嘛不用说,EXE,DLL太大。第二种是安装vcredist_x86.exe这个微软提供的VC运行库,MS的网站上这个文件随时都在更新,缺点嘛,只支持Release版,Debug版不支持。第三种,将VC2005安装目录下:VC\redist\Debug_NonRedist\x86 和VC\redist\x86文件夹复制到exe所在的目录下,发布exe,dll时要同时发布对应的manifest文件,例如发布XXXX.EXE就需要XXXX.exe.intermediate.manifest,此文件在编译时会在项目目录里自动生成。

    偶测试了一下第三种情况,生成了一个VC Win32 Release版的程序,未用MFC,放进一个干净的XP中,运行,自然是那个经典的出错对话框。然后把相应的文件一一拷到EXE目录中,不错,真的可以运行,似乎还满好的,但仔细一想,Win32程序呀,需要带这么多的运行库么?一共是4.3MB多呢,五个目录中从名字就可以看出来,ATL是用于ATL程序的,CRT是用于C/C++程序库,两个MFC一个是MFC库,另一个是本地语言库,还有一个OPENMP是多处理器库。很明显,看你用什么方法搞开发,就用哪个库。测试了一下偶的这个Win32程序,实际上只需要CRT那个目录就行了。又看了一下据说是一个国外大牛写的文章,直接生成修改manifest来启动当前目录中的运行库,达到避开WiSXS目录中放运行库的目的。

    照样测试了一下,那个文章中提到的在manifest中的publicKeyToken属性移除了,如果把Microsoft.VC80.CRT.Manifest中的publicKeyToken移除了,照样出错对话框,也许是大牛的VC版本比我的要高一些吧,好象是升过级的版本。尝试着把Microsoft.VC80.CRT目录下的那个Microsoft.VC80.CRT.manifest或是三个运行库移出来运行,结果均得到另一个“程序初始化错误的”的对话框,有意思,试着将我的App.exe.manifest中的<assemblyIdentity type='win32' name='Microsoft.VC80.CRT' 这里的name属性改成'.'(由DOS想到的.表示当前目录),然后把把Microsoft.VC80.CRT.manifest和三个库文件都移到EXE当前目录中,运行,居然可以,证明了这个猜想是对的。当然,我的程序只用到msvcrt.dll,所以把另两个文件移走,照样可以运行。有趣,无意中又把App.exe.manifest文件移走,发现程序依然可以运行,更加夸张了,这样的话,可以和VC2003程序发布相同了,EXE和运行库在同一个目录下就行了!同样再测试了一下MFC,搞了个最简单的MFC 对话框程序,经过测试发现,如果是默认的UNICODE支持编译,同样可以放在一个目录下运行,只需要mfc80u.dll, msvcr80.dll,两个运行库的manifest加上你的应用程序EXE一共五个文件就行了,无需应用程序的manifest,未打包只有1.67MB,顺手再查看了一下MFC目录下面,有两个居然托管MFC的DLL,到此,情况已经非常理想了,唯一不爽的是不象VC7只需要拷运行库在System32下面,就可以倒处运行程序的情况,2005必须让应用程序跟着运行库走,如果是取消程序项目中的嵌入程序清单这项的话,EXE和运行库的目录也不能变,无法在同一目录下运行了。也许国外的某个大牛修改了VC的CRT+MFC源码重新编译来实现和VC7一样的效果也说不定。不过就测试的过程上来看,MS应该在生成的EXE中加入了读取运行库manifest文件的相关函数代码,如果猜测不错的话,估计也是调用MSXML那个COM接口实现读取manifest判断应用程序运行环境的正确性,难怪不得程序在虚拟机里执行的时候有明显的启动迟钝现象,切,还是VC6,VC7方便快速,但是还是想用VC2005提供的安全运行库函数,只有测试看看有没有办法用VC7链接上VC2005的运行库了。

    另一个问题,VC2005生成的Win32程序,如何具有XP Style风格样式呢?2005生成的MFC程序自动就是XP风格样式的程序了,哈,挺方便的,和以前一样,手动添加那个风格文件为24号资源就行了。VS2005自带的SDK是Win 2003 sp1版的。

我们都在路上。。。。。
2012-04-21 13:51
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
想在论坛下载频道把vs2010传上来共享 可惜只能传50M 擦擦! vs2010有5.58个G。

梅尚程荀
马谭杨奚







                                                       
2012-04-21 13:52
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
回复 36楼 有容就大
哈哈,被微软骗了,其实只装vc2010的话,安装文件只有400多MB呢。。在C++分坛里有人提供了这个下载的。

我们都在路上。。。。。
2012-04-21 13:56
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 35楼 hellovfp
vc6运行是比VS2010要快 用vs老等他漏沙子或是转圈圈
所以以前我都用vc6 一个CTRL F5就马上给结果了。

梅尚程荀
马谭杨奚







                                                       
2012-04-21 13:57
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用有容就大在2012-4-21 13:52:49的发言:

想在论坛下载频道把vs2010传上来共享 可惜只能传50M 擦擦! vs2010有5.58个G。

你的什么鬼版本VS2010?旗舰版连SP1加起来也不过刚够4G,你的居然5.58G!看你刚才的截图,那版本不对劲啊。

授人以渔,不授人以鱼。
2012-04-21 13:58
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 39楼 TonyDeng
看下 我也不知道为什么啊
图片附件: 游客没有浏览图片的权限,请 登录注册


图片附件: 游客没有浏览图片的权限,请 登录注册

梅尚程荀
马谭杨奚







                                                       
2012-04-21 14:00
快速回复:向hellovfp大哥及各位论坛大牛请教关于windows编程文字输出的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024073 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved