Win2003下PB9打开源码窗口报内存错误解决办法

4星 · 超过85%的资源 需积分: 35 171 下载量 196 浏览量 更新于2024-09-13 10 收藏 917B TXT 举报
"pb9在打开某些源码中的窗口时出现'内存不能为read'错误的解决方案" 在使用PowerBuilder (PB) 9.03版本(构建号8716、8836)在Windows 2003 Server操作系统上开发时,用户遇到了一个特定的问题:当尝试打开以前没有问题的源码窗口时,系统报告“内存不能为read”的错误。这个问题不仅限于PB9,也出现在PB8.04的个别窗口中。这表明问题可能不直接与PowerBuilder版本有关,而是可能涉及到操作系统兼容性或者系统环境。 用户已经尝试过完全构建项目(Full build),但问题仍然存在。进一步的测试显示,即使卸载PB9仅保留运行环境的DLL文件,由源码编译生成的EXE在运行包含问题窗口的应用程序时,也会遇到相同的错误。这表明问题可能存在于代码、数据窗口(DataWindow)或者是PB与操作系统的交互方式。 从描述来看,用户怀疑可能是操作系统版本或安装盘的问题,因为错误在XP系统下没有出现,但在Win2003 Server环境下频繁发生。然而,没有明确的证据表明这是操作系统的问题,因为同样的错误在不同的PB版本中都出现,而且在PB12.1中未报告此问题,这可能意味着问题与PB的具体实现或某些库的兼容性有关。 解决方案可能包括以下步骤: 1. **检查系统更新和补丁**:确保操作系统和所有相关的组件(如.NET Framework,数据库驱动等)都已更新到最新状态,以提高兼容性。 2. **修复PowerBuilder安装**:尝试重新安装PB9,确保所有的组件都正确安装,并且没有遗漏或损坏的部分。 3. **排查第三方控件**:如果问题窗口包含第三方控件,检查控件是否与新操作系统兼容,或者是否有更新版本可以解决此问题。 4. **代码审查**:检查问题窗口的源代码,特别是涉及内存管理和对象创建的部分,看是否存在可能导致内存冲突的错误。 5. **数据窗口问题**:由于提到“在打印PB9的datawindow时,输出窗口显示正常,但在Win2003上显示内容较少”,这可能暗示数据窗口渲染有问题。检查数据窗口的设置和数据源,确保它们在新的环境中正确工作。 6. **注册表清理**:清理可能遗留的旧版本PB注册表项,有时候旧的注册表条目可能会影响新版本的运行。 7. **兼容模式运行**:尝试以兼容模式运行PB或生成的EXE,看看是否能解决问题。 8. **社区支持**:访问如CSDN论坛等技术社区,查找类似问题的讨论和解决方案,或者直接向PowerBuilder的支持团队求助。 9. **创建最小可复现案例**:创建一个最小化的源码示例,只包含问题窗口,这样更便于定位问题。 通过上述方法,应该能够逐步缩小问题范围并找到有效的解决方案,而不必重新安装操作系统。记住,对于这类问题,耐心和详尽的调试是关键。