收录日期:2019/06/20 01:23:36 时间:2016/06/01 15:43:42 标签:C#
win form应用程序在winxp下运行良好,在win98下错误提示如下:

SPXT.EXE - 公共语言运行库调试服务
应用程序生成了一个无发处理的异常。
进程 ID=0xffc3f0af (-3936081),线程 ID=0xffc3f107 (-3935993)。
单击“确定”终止该应用程序。
单击“取消”调试该应用程序。

这个问题我发好几次贴了,为什么没人帮我?!
有人说是Excel2003与Excel 2000 Excel XP版本兼容问题,可我程序里面并没有用到Excel!请高手指点!
有人用win98运行vs.net?我也想知道下原因,帮你顶
如果异常无法处理,就捕捉后,告诉用户,然后重新启动程序,呵。
没办法,异常实在太我,特别是在有第三方控件的情况下
我也曾经出现过这样的错好象是mdac错误!
关注!
是不是你这里面的api函数不兼容啊??

解决我不会哦。
没见过,关注
你工程里都引用了什么?
up
win form程序是用什么工具开发的?能简单介绍一下程序的功能吗?你什么也没说,别人如何帮助你呢?
不知道你说的那个WIN FORM应用程序是用什么做的,如果是用.NET开发的,在98下是运行不了的,这是我听我们公司比较有经验的人说的.
不是c#.net运行在win98客户端,而是c#做的win form应用程序!

程序开始是运行正常的,后来操作员好象是更改了config文件内容后才运行错误的。config文件内容如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="oleDbConnection1.ConnectionString" value="Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Database Password=xx;Data Source=&quot;D:\KeNtEr\CS_SoftWare\SPXT\bin\Release\spxt.kmdb&quot;;Password=;Jet OLEDB:Engine Type=5;Jet OLEDB:Global Bulk Transactions=1;Provider=&quot;Microsoft.Jet.OLEDB.4.0&quot;;Jet OLEDB:System database=;Jet OLEDB:SFP=False;Extended Properties=;Mode=Share Deny None;Jet OLEDB:New Database Password=;Jet OLEDB:Create System Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;User ID=Admin;Jet OLEDB:Encrypt Database=False" />
<add key="nexttoone" value="flqx 0.8" /> 注意:就是将这里的value值更改为two后出现错误的!!nexttoone的值本来没什么意义,只是我用来检测其他值的一个变量。

<!--Return a ticket-->
<add key="TwoHourLeftRetrunTicketMoney" value="0.8" />
<add key="OneHourLeftRetrunTicketMoney" value="0.9" />

<!--Report files path-->
<add key="ZDRptFile" value="ZDLists.rpt" />
<add key="JiSuanBiaoRptFile" value="jiesuanreport.rpt" />
<add key="XLRptFile" value="XLReport.rpt" />

<!--Print parameters-->
<add key="ShowMessageWhenErrorSetPrint" value="true" />
<add key="AdjustPrintPositionX" value="-26" />
<add key="AdjustPrintPositionY" value="6" />
<add key="PrintName" value="Epson LQ-300K" />
<add key="FontSize1" value="18" />
<add key="FontSize2" value="12" />
<add key="FontSize3" value="10" />
<add key="ShowFrame" value="true" />
<add key="SetPaper" value="true" />

</appSettings>
</configuration>

而且,config文件中不能使用中文,否则copy到客户端一定是乱码。
回答上面的问题:

1.第三方控件,我就只用了FlexGrid,是ComponentOne公司的。

2.mdac错误?您是说需要安装第3张盘里面的mdac_typ.exe文件吗?

3.程序里面没有用到API函数。

4.我的开发工具是c#.net,里面有些表单用到水晶报表。

5.引用:using System;
        using System.Drawing;
        using System.Collections;
        using System.ComponentModel;
        using System.Windows.Forms;
        using System.Data;
        using System.Data.OleDb;
        using System.Diagnostics;

大家帮忙解决,还想知道什么尽管说,我在线等!
这个我也说不上来,应该不是config文件的问题。
如果您用c#.net开发win form程序发布在win98客户端,没准儿也会碰到我这样的问题。如果不想手忙脚乱就帮我顶下啊!
哎,发了那么多贴结果还是解决不了,不知道是这里人情冷漠,还是没人懂?高手都哪去了!!??
up



--
up
一直顶到有人说话!
坚持不懈,一个字“顶”!
up
up again
先试捕捉住这错,看看详细错误信息是什么,否则别人没法帮你,参考

Managing Unhandled Exceptions in .NET
http://www.codeproject.com/dotnet/unhandledexceptions.asp
up
多谢思归,用你的办法捕捉错误如下显示:

算术运算中发生溢出或下溢
at System.Drawing.Font.Initialize(FontFamily family, Single emSize, FontStyle style, GraphicsUnit unit, Byte gdiCharSet, Boolean gdiVerticalFont)
at System.Drawing.Font..ctor(FontFamily family, Single emSize, FontStyle style, GraphicsUnit unit, Byte gdiCharSet, Boolean gdiVerticalFont)
at System.Windows.Forms.ControlPaint.FontInPoints(Font font)
at System.Windows.Forms.Control.get_DefaultFont()
at System.Windows.Forms.Control.get_Font()
at System.Windows.Forms.Control.get_FontHeight()
at System.Windows.Forms.TextBoxBase.get_PreferredHeight()
at System.Windows.Forms.TextBoxBase.get_DefaultSize()
at System.Windows.Forms.Control..ctor()
at System.Windows.Forms.TextBoxBase..ctor()
at System.Windows.Forms.TextBox..ctor()
at SPXT.Form1.InitializeComponent()
at SPXT.Form1..ctor()

怎么会是这个错误呢?不理解!需要怎么做才可以解决这个问题呢?
does the error happen on every windows 98 machine? or just a specific one, check if there are any special software installed on that machine, like spywares/.. running, see this guy's problem

http://www.error-bank.com/microsoft.public.dotnet.framework.windowsforms/uL7Smv7wDHA.1680@TK2MSFTNGP12.phx.gbl_Thread.aspx

also, what font are you using? can you try to use one of the normal fonts?
你是不是双系统?
如果你是在xp下编译通过的程序,当然在98下运行不了,注册表都不一样!!
回答上面的问题:

1.开发程序的电脑是xp,客户电脑是win98。

2.仅仅就在一台win98电脑上是这样的情况,其他好的,而且我在出错的电脑上用ghost还原了以前的C盘备份居然也好了!不知道操作人员在电脑上更改了什么设置。

3.那电脑都没装什么特殊的软件,win98操作系统和我的程序,IE升级成6.0。

4.我的程序里面就一个子表单设置过字体,其他的地方,像FORM、TEXTBOX、BUTTON等的控件都是系统默认的字体。除非用户在主表单的菜单中点选,不然是进不了子表单的,但是程序错误发生在主表单显示前,这个也会有影响吗?
下面的是我在那个表单中设置字体的代码:
this.label1.Font = new System.Drawing.Font("黑体", 42F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
this.listView1.Font = new System.Drawing.Font("黑体", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
this.dateTimePicker1.Font = new System.Drawing.Font("黑体", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
主表单InitializeComponent()中设置字体的就一个地方:
this.button2.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134)));
这行代码是c#.net自动生成的,我并没有更改字体和大小。

虽然我通过ghost还原了以前的操作系统,那个溢出的错误不再发生,但是至今没搞明白为什么会发生那样的错误,太不理解了!
net做的应用程序运行在win98上好麻烦,还不如用delphi来的简单。
mdac至少要安装2.7
我试过重新安装MDAC27SP1,没用。
Win98 上运行 .NET 软件的确很麻烦,我曾遇到的问题还有更复杂,更难理喻的。
但最终我还是全部把已遇到的全部搞定了,至少我的软件现在的确能很好地在 WIN98 上运行。

麻烦,WIN98 真麻烦。不过估计再过一二年,微软就会像丢弃 WIN95 一样丢弃它。
关于配置文件在 WIN98 上乱码的问题,是由于 VS.NET 在保存配置文件时使用了 UNICODE 或者 uft-8 的编码。这种问题一般对于开发 WEB 程序不大会遇到,在 WIN NT 平台上也通常不会遇到,因为 WIN98/ME 对这两种编码并不是默认支持的。

解决的办法,一可以改变 VS.NET 保存文件的编码页设置,二可以用记事本打开后以 ANSI 编码保存到另外一个文件。
多谢各位朋友的回复,真的很感激!

从我GHOST回复系统后,软件正常运行差不多有半个多月了,好景不长,今天一大早客户电话我说出问题了,又是那个该死的算法溢出,错误如下:

算术运算中发生溢出或下溢
at System.Drawing.Font.Initialize(FontFamily family, Single emSize, FontStyle style, GraphicsUnit unit, Byte gdiCharSet, Boolean gdiVerticalFont)
at System.Drawing.Font..ctor(FontFamily family, Single emSize, FontStyle style, GraphicsUnit unit, Byte gdiCharSet, Boolean gdiVerticalFont)
at System.Windows.Forms.ControlPaint.FontInPoints(Font font)
at System.Windows.Forms.Control.get_DefaultFont()
at System.Windows.Forms.Control.get_Font()
at System.Windows.Forms.Control.get_FontHeight()
at System.Windows.Forms.TextBoxBase.get_PreferredHeight()
at System.Windows.Forms.TextBoxBase.get_DefaultSize()
at System.Windows.Forms.Control..ctor()
at System.Windows.Forms.TextBoxBase..ctor()
at System.Windows.Forms.TextBox..ctor()
at SPXT.Form1.InitializeComponent()
at SPXT.Form1..ctor()

据他们反映,前几天也出现过这个错误,重新启动电脑后就能进去了,但今天怎么也进不去了,一直都是这个错误提示!
我急啊,不知道到底错在什么地方,客户还催的要命!!各位帮忙!
问问他们同时在机器还有什么程序在运行,关掉类似QQ,抗毒程序,Spyware等等试试,如果这玩意是要紧的东西,建议他们升级到XP吧
今天中午我过去了,GHOST回复系统又好了......

在回复前,用CTL+ALT+DEL查看系统进程就4个,Explorer、Internat、Systray和Khooker。我不知道Khooker是什么程序,将其强制结束后,程序依然算法溢出。

回复系统后,程序运行正常,检查进程除了上面的4个外又多加了1个Sistray,这个是SIS显卡的辅助程序,安装系统时就有的。

那些收银员都是电脑初级手,电脑没光驱,什么网络都没连,不会有病毒,不会有QQ,除非我给他们安装否则不会有其他什么程序运行,可就是出错,我纳闷!我也曾把表单中的所有设置FONT的代码全部删除,仍然出错!

这个错误不是致命的,能不能用什么方法在出错后忽略掉这个错误继续下面的代码执行呢?
忘记说了:电脑配置不是很好,内存就64M,装xp怕是根本就运行不了。让他们换电脑,估计机会渺茫。
up
内存就64M,装xp怕是根本就运行不了。让他们换电脑,估计机会渺茫。
--------------------------------------------
那你还让他们用 .NET 写的程序
换 VC 开发不是挺好的
你说的问题描述不是很清楚,我给点建议:
1.你的程序开始运行正常,而且在其它机器 上也运行正常,这说明程序没问题,问题一定出在环境上.
2.Win98系统不是很稳定,特别是其注册表,如果客户装的软件将原先的注册表项更改后就会把.NET弄坏(安装.NET会点用好几MB的注册表空间,如果其中的注册项被更改,可能会使.NET出错),你的客户是不是装了什么软件改了注册表项,或者用工具软件整理过注册表.还有就是,你可以在正常的时候备份注册表,出问题时再恢复注册表,用于查出错误所在的原因.(我估计多半是注册表不正确引起的).
3.现在出问题了,你还可以将MDAC、.NET这些相关软件卸载了再重装.估计多半就行了,不过Win98装.NET的速度好像有点慢(特别是在装完时注册组件的时候)?!

我将regedit.exe备份为reg1.exe,然后在autoexec.bat中写入copy c:\windows\reg1.exe c:\windows\regedit.exe,即每次启动windows前都自动恢复注册表。本以为可以高枕无忧,没想到一个月后客户又电话过来说出现了那该死的算术溢出!我狂晕无语,当初可是信誓旦旦的拍着胸脯说不会再出现问题了!哎没办法,只有厚着脸皮又用ghost恢复了整个win系统。难道不是注册表的问题?!还会有什么问题呢??想不出来了!

暂行解决办法:我做了双启动菜单让用户选择,第一个菜单进入win98售票,第二个菜单自动ghost恢复系统,没办法的办法了。

请问TTreeView中node显示高亮用什么属性判断? 帮我看看这段代码,很短的 请问如何在同一工程下一个窗体中引用的另一个窗体对象变量? 关于预编译,fatal error C1010 讨论,如何写接口编程? 如何在接口定义的方法参数中使用自定义类型参数?例如下面的:MENUSTYLE? 我的管道为什么老是提示要增加数据的表不存在? 东东兄请进!!! 如何模拟鼠标在某个区域单击了一下? [2002-08-22]每日一唉…… 如何将listbox的垂直滚动条改变颜色或变成平面效杲(不能换其它控件,),像优化大师的那种,加分多多。先到先得 用adoquery查询运程数据库时,如查询未完成form不能动了,该如何处理? IO文件的ContentType获得 使用ODBC 连接SQL SERVER 需要在注册表中设置什么? 请教有关TTreeView的复制问题: 请教有关TTreeView的复制问题: 谁能将这个用VB函数翻译成VC++ SDK代码!马上给分! 请问,谁有windows消息大全一类的电子书?小弟急用!! 我的笔记本的bios烧坏了,怎么办? 磁卡编程问提?!@送分啦@!!!!! 如何进行变量查询? 求救,急,在线等待! InterBase的一个问题 求救,急,谁能帮忙啊! 文件操作小问题 如果我的adsl是1.5mbps的速度,如加用vpn的問題 casl两个简单问题。 高分求教~ 讨论:关于加速软件? 这样的情况,用什么方法更好?