cegui0.71版确实做了很多改进,但是在下下来的dependency上,却出现了问题:应用程序正常初始化(0xc0150002)失败
查看windows的事件查看器,在“系统”下,可以看到SideBySide错误,报说找不到附属汇编Microsoft.VC80.DebugCRT,显然,这玩意肯定是装的,所以只可能是版本不对。
用resource hacker发现cegui需要 version="8.0.50727.4053" 的Microsoft.VC80.DebugCRT,在vc的安装目录下没有4053的版本,都是尾数762的,在windows/winsxs下也没有发现4053的版本。
上网多方求证,才发现原来是微软是又更新了visual studio sp1,出了一个名为Visual Studio 2005 Service Pack 1 ATL Security Update(http://www.microsoft.com/downloads/details.aspx?FamilyID=7c8729dc-06a2-4538-a90d-ff9464dc0197&displaylang=en),说是一个security update,7/28/2009, 很不幸的,显然CE更新了他的vs版本,所以他机器编的相关库也就被连接到那个4053的版本了。
期间我也做过几种尝试,修改dll的manifest的方式肯定是可行的,用resource hacker将其manifest中的关联项改为762就可以了,但是由于里面有几个共享库比如pcre,freetype被编译成了静态lib,导致每次编译ceguiBase_d.dll都需要修改其manifest,这显然不是解决之道。所以起码也得修改这写lib的dependency信息,用ue能打开这些lib,看到里面有一大堆的4053的dependency,很不幸的4053是4个字节来表示34 30 35 33, 而762是3个字节 37 36 32,结果修改后的dll就不能用了。等我想到是不是用00什么的来填充这个字节的时候,很不幸的,我的补丁已经打好了,而程序也确实可以运行了....
该问题的后遗症就是,开发这边没人还得装这个新的补丁,另外,最终用户发布时还需一起发布一个新版的vcredist_x86.exe,该版里包含了4053的运行时库。
借由这个问题,认识了微软很多dll啊,版本控制的问题,比如winSXS文件夹(用来解决dll hell问题),SideBySide错误(这玩意基本上就是dll装载错误,而官方统称为assembly--程序集,翻译过来就成了汇编没安装了...)总之用vc开发可真不是那么容易的
分享到:
相关推荐
CEGUI(Composite Entity GUI)是一个开源的图形用户界面(GUI)库,专为实时应用程序设计,如游戏和模拟器。它提供了一套高度可定制、模块化的组件,用于创建复杂的用户界面。MFC(Microsoft Foundation Classes)...
CEGUI(Composite Extreme GUI)是一个开源的图形用户界面(GUI)系统,专为实时3D应用设计,如游戏和模拟软件。它提供了丰富的组件和高度可定制的界面元素,允许开发者轻松创建复杂的用户界面。0.7.1是CEGUI的一个...
CEGUI(Composite Entity GUI System)是一个开源的图形用户界面(GUI)系统,广泛应用于游戏开发和其他需要自定义GUI的应用程序中。它提供了丰富的组件、事件处理和灵活性,以创建复杂而美观的用户界面。在本资源中...
1. **初始化CEGUI**: - 首先,你需要包含必要的头文件,如`<CEGUI/CEGUI.h>`,`<OgreCEGUIRenderer.h>`等。 - 创建CEGUI渲染器对象,通常使用OgreCEGUIRenderer,它将CEGUI与Ogre的渲染系统连接起来。 - 初始化...
**CEGUI**(Cross-platform Engine GUI)是一个跨平台的图形用户界面库,它为游戏开发者和其他应用程序提供了强大的界面管理能力。本解析将详细介绍CEGUI的核心概念和技术细节。 ##### 1.1 CEGUI历史和本书使用的版本...
以下是一个简化版的代码示例,展示了如何初始化CEGUI并设置资源路径: ```cpp // 获取DefaultResourceProvider的指针 CEGUI::DefaultResourceProvider* rp = static_cast<CEGUI::DefaultResourceProvider*>(CEGUI::...
CEGUI,全称为“Crazy Eddie's GUI System”,是一个开源的、跨平台的图形用户界面(GUI)库,专门设计用于游戏开发和其他实时应用程序。它提供了丰富的组件和自定义功能,使得开发者能够创建出复杂的、高性能的用户...
在初始化阶段设置资源路径是非常重要的。 在`CEGuiOpenGLBaseApplication`中,可以看到类似以下的代码用于设置资源组目录: ```cpp CEGUI::DefaultResourceProvider* rp = static_cast<CEGUI::...
总之,CEGUI库7.1是一个强大的工具,它为游戏和其他图形应用程序的界面开发提供了全面的支持。通过其灵活的架构和丰富的功能,开发者可以高效地创建出美观、互动的用户界面,同时保持代码的整洁和可维护性。
CEGUI(Composite Extreme GUI)是一个开源的、跨平台的用户界面库,专为游戏开发和实时3D应用程序设计。在CEGUI0.7.5版本中,它提供了丰富的UI组件和自定义能力,使得开发者能够轻松创建出复杂的图形用户界面。这个...
之后,可以在自己的项目中链接CEGUI库,并根据需要加载XML布局文件,初始化和管理GUI元素。 在游戏开发中,CEGUI可以作为游戏菜单、设置界面和 hud(Head Up Display)的构建基础,提供美观且易于定制的用户界面。...
CEGUI(Crazy Eddie's GUI System)是一个开源的图形用户界面(GUI)库,用于创建2D用户界面,尤其适用于游戏开发和应用软件。它的设计目标是提供灵活、可扩展和易于使用的API,使得开发者可以通过XML来定义界面布局...
OpenSceneGraph是一个高性能的3D图形库,用于创建实时3D应用程序,如游戏、科学可视化和虚拟现实应用。在使用Qt这样的GUI框架开发OSG应用时,通常需要将OSG库与Qt界面集成,这就涉及到特定的编译步骤和依赖库。 "Qt...
使用CEGUI时,开发者需要配置和初始化GUI系统,注册所需的模块,创建窗口和控件,然后绑定事件处理器以响应用户的交互。CEGUI支持数据驱动的界面布局,可以通过XML文件定义界面元素的外观和行为,这样可以将界面设计...
系统控制负责初始化和关闭CEGUI,资源管理负责加载和管理各种资源,而系统接口则提供了与外部系统的通信桥梁。 #### 七、CEGUI应用程序框架 CEGUI的应用程序框架包括了OpenGL程序框架和CEGUI程序框架,它们指导...
- 运行你的应用程序,检查CEGUI是否正确初始化。 - 使用CEGUI的日志系统来调试界面问题。 9. **自定义外观**: - 编写XML布局文件定义界面布局。 - 设计皮肤,包括图像集、颜色和字体等,通常存储在`.looknfeel...
CEGUI,全称为“Crazy Eddie's GUI System”,是一个开源的、跨平台的用户界面引擎,主要用于游戏开发和应用程序设计。这个强大的工具提供了一个灵活且可扩展的框架,允许开发者创建丰富的图形用户界面(GUI)而无需...