一个搞笑的delphi的 bug ? 还是我自己写错了?

qufo 2008-04-11 10:07:28
我昨天写了一个小程序,从一个网站取网页回来,然后把源码进行分析,提取所需要的数据,然后存入数据库。

一个很简单的小程序吧,结果发生了很搞笑的事情。

程序取网页取到一定数量的时候(不确定是多少,有时多有时少),然后程序会死掉,没动静,CPU占用50%(我的双核)
然后,程序没法自己关掉,只好结束任何。

但是,问题来了,下次再启动这个程序时,就报错,启动不了,是那种直接出来要调试的那种,根本不知道错误是什么,汗。

我备份过程序的二进制代码,保证程序本身没有任何问题。在程序执行过程中没有任何地方有机会更改程序自己(汗,程序自己更改自己?程序执行的时候应该是只读的吧)

百思不得其解之余,打开 delphi ,重新生成.exe,运行,又OK了。

过一段时间,又锁死了,结束之,进delphi重新生成,又OK了。

MD,这算怎么回事?
...全文
294 10 打赏 收藏 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxtnt 2008-04-13
  • 打赏
  • 举报
回复
程序的健壮性不好
qufo 2008-04-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 fenger8293 的回复:]
可能是你的程序里调用了某些东西,在非正常关闭的时候,这些东西没有被释放,而在重新编译的时候delphi帮你初始化掉了.
最好检查你的代码,才用多线程来处理下载分析数据看看
[/Quote]



多线程意义不大,我需要单线程。

我重启过电脑,所有的东西都free掉了才对。
qufo 2008-04-11
  • 打赏
  • 举报
回复

我刚重启过电脑,这下所有的东西都free掉了吧?

结果还是一样。

lyguo 2008-04-11
  • 打赏
  • 举报
回复
非正常退出可能没有FREE一些数据吧.
手指风 2008-04-11
  • 打赏
  • 举报
回复
可能是你的程序里调用了某些东西,在非正常关闭的时候,这些东西没有被释放,而在重新编译的时候delphi帮你初始化掉了.
最好检查你的代码,才用多线程来处理下载分析数据看看
qufo 2008-04-11
  • 打赏
  • 举报
回复
我用FC 比较过,除了编译日期之类的不同外,其他的一模一样。
killerprince 2008-04-11
  • 打赏
  • 举报
回复
哈哈 这么奇怪,不会是有病毒吧?
等高人解释~~~
qufo 2008-04-11
  • 打赏
  • 举报
回复
自魢唑沙髮!
lobtao 2008-04-11
  • 打赏
  • 举报
回复
嗯 ,很有可能哦
hthunter 2008-04-11
  • 打赏
  • 举报
回复
呵呵,被windows加入黑名单了?
打开链接下载源码: https://pan.quark.cn/s/e18529987bb9 ### ETS中文教程:KNX施耐德智能家居 #### 知识点一:ETS软件概述与启动 ETS(Engineering Tool Software)是由施耐德电气研发的一款专业设计工具,其核心功能在于构建和配置基于KNX标准的智能家居及楼宇自动化系统。KNX代表一种国际公认的开放式标准,该标准在楼宇自动化领域得到广泛应用,其目的是实现不同品牌设备之间的互联互通。 **软件启动方法**:ETS软件可以通过双击其图标来启动,或者从开始菜单中选择“File”->“New Project”,亦或直接使用Ctrl+N快捷键来启动该软件。 #### 知识点二:工程项目创建 在启动新的工程项目时,需要遵循以下流程: 1. **项目命名**:推荐使用数字与字母的组合来命名项目,例如“Officebuildings”,这样的命名方式有助于日后的管理和识别。 2. **构建建筑物模型**:在“Buildings/Functions”部分添加建筑物,自定义其名称(例如“mg”),并确认创建操作。 3. **添加房间**:针对每一个建筑物,可以进一步添加房间,同样地,为房间自定义名称(如“1F”),以此来构建完整的建筑模型。 #### 知识点三:设备加载与配置 设备加载是ETS软件中的核心环节,其作用在于将实际的智能设备(包括开关、传感器等)整合到项目中: 1. **设备加载过程**:在目标房间处进行右键点击,选择“Add Devices”,随后通过“Product Finder”对话框选择合适的制造商和产品系列,以此来加载所需的设备类型。 2. **地址分配**:在设备加载完成后,应手动为其分配独...
代码下载链接: https://pan.quark.cn/s/a4b39357ea24 在客户端编程中,有时我们需要对用户上传的Excel文件内容进行管理,并将其转化为JSON格式以便进行后续操作或与服务器端进行数据交换。这一过程通常包含文件读取、数据解析以及格式转换等步骤。以下是一些关于如何运用JavaScript达成这一功能的核心要点: 1. **File API**:在当前版本的浏览器中,我们可以借助File API来获取用户上传的文件。`FileReader`对象提供了异步获取文件内容的方法,例如`readAsArrayBuffer()`,用于读取文件内容。 2. **XLSX库**:由于浏览器自带的API不直接支持Excel文件的解析,我们需要借助第三方库。其中,`xlsx`库是一个广受欢迎的选择,它能解析多种Excel文件格式(如XLS、XLSX、CSV等)并提供便捷的数据操作接口。 3. **获取Excel文件**:借助`xlsx`库,我们首先需要将File API获取到的`ArrayBuffer`转换为可解析的格式。例如,可以调用`XLSX.read(arrayBuffer, {type: buffer})`进行格式转换。 4. **解析工作表内容**:`xlsx`库解析完成后,会返回一个对象,其中包含了所有工作表的信息。我们可以通过`XLSX.utils.sheet_to_json(worksheet)`方法将单个工作表转换为二维数组,这类似于Excel中的表格数据。 5. **转化为JSON对象**:二维数组可以很方便地转化为JSON对象。遍历数组,每行数据作为JSON对象的一个属性,属性名为单元格的列名,属性值为单元格的值。可以使用`Arr...
源码下载地址: https://pan.quark.cn/s/de26074cf420 CadLib4.0被定位为一个功能丰富的.NET CAD类库,它为开发人员提供了在C#或其它.NET编程语言环境中嵌入CAD功能的可能性,从而简化了DWG和DXF文件的构建与修改过程。这个压缩文件内含了必要的DLL组件以及一个基于WinForms的应用实例,该实例清晰展示了在Visual Studio 2010开发环境中如何进行CAD文件的读取和处理,特别是对于AutoCAD 2014所支持的最新文件格式具备良好的兼容性。 1. **CadLib**:CadLib作为核心的类库,为与AutoCAD的DWG和DXF文件进行交互提供了接口和实现机制。它通过封装CAD数据结构和相关操作,让开发人员无需深入探究底层CAD格式细节,即可便捷地完成CAD文件的输入输出操作。 2. **WW.Cad.dll**:此DLL文件被视为CadLib的核心构成部分,其中汇集了所有与CAD操作直接关联的类和函数。例如,开发人员可借助此库来初始化新的图纸,向其中添加各类几何元素(比如直线、圆形、多段线等),或是提取已有图纸中的数据信息。 3. **WW.dll**:该DLL可能扮演着CadLib的辅助角色,里面存放了通用的工具函数和类,它们为CadLib各项功能的实现提供了支持。这些功能可能涵盖数据转换、异常管理或图形的视觉呈现等方面。 4. **WW.Pdf.dll**:此文件或许具备将CAD图纸内容转换为PDF文档的能力。开发者可利用这一特性,将设计成果导出为PDF格式,方便进行打印或在线传播,而无需借助AutoCAD软件。 5. **WW.GL.dll**:从其命名推断,该文...

830

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧