社区
C#
帖子详情
尝试读取或写入受保护的内存,这通常指示其他内存已损坏
cctvsoft
2006-10-20 12:05:47
我用C#做的一个软件,打完包安装后,当单击输出报表的按钮时,出现下面的提示:
“尝试读取或写入受保护的内存,这通常指示其他内存已损坏 ”
但是,我在开发环境中运行却没有问题,并且有的电脑有这问题,有的电脑没有问题。
那个提示,是我在操作Excel的一个类中捕获到的,各位大侠帮忙啊!
那个类的代码如下:
...全文
411
6
打赏
收藏
尝试读取或写入受保护的内存,这通常指示其他内存已损坏
我用C#做的一个软件,打完包安装后,当单击输出报表的按钮时,出现下面的提示: “尝试读取或写入受保护的内存,这通常指示其他内存已损坏 ” 但是,我在开发环境中运行却没有问题,并且有的电脑有这问题,有的电脑没有问题。 那个提示,是我在操作Excel的一个类中捕获到的,各位大侠帮忙啊! 那个类的代码如下:
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cctvsoft
2006-10-23
打赏
举报
回复
这个问题我自己已经解决了,是我引用的Excel版本的问题。
csrwgs
2006-10-21
打赏
举报
回复
把程序需要的资源都放在程序所在目录下面
不要调用%System%下面的。
因为有的机子没装
Nara
2006-10-21
打赏
举报
回复
F10...
owennol
2006-10-20
打赏
举报
回复
这种错误一般是数组越界之类
cctvsoft
2006-10-20
打赏
举报
回复
class Reports
{
/****************************************************字段***************************************************/
private string m_strExcelParch; //Excel模板文件的存放路径
private string m_strExcelName; //Excel模板文件的名称
private string m_strHeaders; //输出报表的表头名称
private string m_strBillID; //单据的ID
private string m_strDate; //字符串型日期
private string m_strExcelTitle; //输出报表的标题
private static int m_intFlag = 0; //为了不出现重复的Excel文件名,当次打开软件的标题=标题+m_intFlag由0开始美打开一个增加1
public static string m_strExeParch; //Exe文件的存放目录
private DateTime m_DT; //日期型日期
private Excel.Application m_xslApplication;//一个Excel文件对象
private System.Data.DataTable m_dtReport; //要填充Excel文件的数据表
/****************************************************构造函数or方法**********************************************************/
/// <summary>
/// 初始化一个报表信息
/// </summary>
/// <param name="p_strExcelName">Excel模板文件的名称</param>
/// <param name="p_dtReport">要填充Excel文件的数据表</param>
/// <param name="p_strHeaders">输出报表的表头名称</param>
/// <param name="p_strBillID">单据的ID</param>
/// <param name="p_dtTime">日期</param>
public Reports(string p_strExcelName,System.Data.DataTable p_dtReport,string p_strHeaders,string p_strBillID,DateTime p_dtTime)
{
m_dtReport = p_dtReport;
m_strExcelName = p_strExcelName.Trim();
m_strHeaders = p_strHeaders.Trim();
m_strBillID = p_strBillID.Trim();
m_strDate = p_dtTime.Date.ToShortDateString();
m_strExcelParch = System.Environment.CurrentDirectory + @"\Reports\" + m_strExcelName + ".xlt";
if (Directory.Exists(m_strExeParch + @"\wStarSReport") == false)
{
Directory.CreateDirectory(m_strExeParch + @"\wStarSReport");
}
FileInfo fifMode = new FileInfo(m_strExcelParch);
m_strExcelTitle = m_strHeaders + m_intFlag++;
fifMode.CopyTo(m_strExeParch + @"\wStarSReport\" + m_strExcelTitle + ".xls",false);
Thread thread1 = new Thread(new ThreadStart(toExcel));
thread1.Start();
}
/// <summary>
/// 初始化一个报表信息,重载
/// </summary>
/// <param name="p_strExcelName">Excel模板文件的名称</param>
/// <param name="p_dtReport">要填充Excel文件的数据表</param>
/// <param name="p_strHeader">输出报表的表头名称</param>
/// <param name="p_dTime">日期</param>
public Reports(string p_strExcelName, System.Data.DataTable p_dtReport, string p_strHeader, DateTime p_dTime)
{
m_dtReport = p_dtReport;
m_strExcelName = p_strExcelName.Trim();
m_strHeaders = p_strHeader.Trim();
m_DT = p_dTime;
m_strExcelParch = System.Environment.CurrentDirectory + @"\Reports\" + m_strExcelName + ".xlt";
m_strExeParch = System.IO.Directory.GetCurrentDirectory();
if (Directory.Exists(m_strExeParch + @"\wStarSReport") == false)
{
Directory.CreateDirectory(m_strExeParch + @"\wStarSReport");
}
FileInfo fifMode = new FileInfo(m_strExcelParch);
m_strExcelTitle = m_strHeaders + m_intFlag++;
fifMode.CopyTo(m_strExeParch + @"\wStarSReport\" + m_strExcelTitle + ".xls", true);
Thread thread1 = new Thread(new ThreadStart(toExcel));
thread1.Start();
}
股神
2006-10-20
打赏
举报
回复
这种错误不好说..
关于
尝试
读取
或
写入
受
保护
的
内存
。这通常
指示
其他
内存
已损坏
。的解决方法
主要介绍了
尝试
读取
或
写入
受
保护
的
内存
。这通常
指示
其他
内存
已损坏
。的解决方法,有需要的朋友可以参考一下
Phonetic Bandbag Simulation
MATFOR4.1的demo中有个pbg项目(Phonetic Bandbag Simulation),无论怎么改,都有个错误“
尝试
读取
或
写入
受
保护
的
内存
。这通常
指示
其他
内存
已损坏
。”。查遍网络,最后弄清楚了,GC是单独的一个线程,跨线程释放
内存
就会造成这样的问题。这是修改过的文件,希望对您有用。 如果您使用多核,且您正在使用MATFOR4.1,不妨下载下来试试看。
Winform.Net语法高亮显示代码编辑控件
程序集出自于 csharpdevelop 项目的组件。 资源包包括 ICSharpCode.TextEditor NET.2.0(可用于NET2.0~3.5) 和 Net.4.0 两个版本的源码和一个测试DEMO。 注意 .net4.0 不能使用 .net2.0 程序集不然程序运行会报(
尝试
读取
或
写入
受
保护
的
内存
。这通常
指示
其他
内存
已损坏
。)这个错误。 程序集中原本不包含TSQL语法高亮。现己加入项目中。使用方法请参考2.0中的DEMO!
rar压缩软件.rar
RAR 是一个让你在命令行模式中管理压缩文件的控制台应用。RAR 提供压缩、加 密、数据恢复和许多其它此手册中描述的其它功能。 RAR 只支持 RAR 格式压缩文件,它默认有 .rar 扩展名。不支持ZIP 和其他格 式。即使创建压缩文件时指定了 .zip 扩展名,它仍然是 RAR 格式的。Windows 用户 可以 WinRAR,它支持更多的压缩文件类型,包括 RAR 和 ZIP 格式。 WinRAR 提供了图形用户界面和命令行模式。虽然控制台 RAR 和图形界面 WinRAR 有相似的命令行语法,但是它们还有有一些不同。所以推荐使用此 rar.txt 手册用于 控制台 RAR(rar.exe 在 Windows 版本的情况下),winrar.chm 是图形界面 WinRAR (winrar.exe) 的帮助文件。 配置文件 ~~~~~~~~ Unix 版本的 RAR 从用户的 home 或 /etc 目录中的 .rarrc 文件
读取
配置文件信息 (存储在 HOME 环境变量中) Windows 的版本 RAR 从 rar.ini 文件
读取
配置文件信息,它放在 rar.exe 文件相 同的目录中。 这个文件包含下列字符串: switches=任何 RAR 开关,用空格分开 例如: switches=-m5 -s 环境变量 ~~~~~~~~ 可以通过建立"RAR"环境变量来添加默认参数到命令行中. 例如,在 Unix 中,下列命令行可以被添加到你的配置中: RAR='-s -md1024' export RAR RAR 将使用这个字符串作为命令行的默认参数,并将使用 1024KB 字典大小来创建 “固实”压缩文件。 RAR 控制选项使用下列优先级: 命名行开关 最高优先级 在 RAR 变量中的开关 低优先级 保存在配置文件中的开关 最低优先级 日志文件 ~~~~~~~~ 如果在命令行或配置文件中指定开关 -ilog ,RAR 将会把处理压缩文件中遇到的错误 等写到日志文件中。
读取
开关 -ilog 描述获得更多信息。 固实压缩的文件列表 - rarfiles.lst ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ rarfiles.lst 包含一个用户定义的文件列表,告诉 RAR 添加文件到固实压缩文件时的顺 序。它可以包含文件名通配符和指定项目 -$default。默认项目定义了这个文件中与 其他项目不相符时的顺序清单位置。 注释字符是 ';'. 在 Windows 中,这个文件应该放在 RAR 所在的或 %APPDATA%\WinRAR 目录中, 在 Unix 中- 放在用户的 home 目录或在 /etc 中。 提高压缩率和操作速度的提示: - 在压缩文件中,小文件应该被组织在一起; - 频繁被处理的文件应该放在开始的位置。 普通的掩码越靠近顶端优先权就越高,但是这个规则存在例外。如果 rarfiles.lst 包含两个掩码,并且所有文件既匹配第一个掩码,也匹配第二个掩码, 较小的子集 或者更精确的匹配拥有更高的优先权。例如,如果你用 *.cpp 和 f*.cpp 掩码, f*.cpp 拥有更高的优先权。 RAR 命令行语法 ~~~~~~~~~~~~~~ 语法 RAR [ - ] [ ] [ ] [ ] 描述 命令行选项 (命令和开关) 提供了使用 RAR 创建和管理压缩文件的控制方法。命 令是一个字符串(或单个的字母),命令 RAR 去执行一个相应的操作。开关被用来 改变 RAR 执行操作的方法。其它参数是压缩文件名和被压缩的文件或要从压缩文件 中被解压文件。 列表文件是一个包括处理的文件名的纯文本文件。第一列应该以文件名开始。可以 在//字符后添加注释。例如,你可以创建包含下列字符串的 backup.lst: c:\work\doc\*.txt //备份文本文档 c:\work\image\*.bmp //备份图片 c:\
网管教程 从入门到精通软件篇.txt
网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的诊断和测试以及恢复系统功能的工具。小编的确一直都想把这方面的命令做个总结,这次辛苦老范给我们整理了这份实用的秘笈。 Bootcfg bootcfg 命令启动配置和故障恢复(对于大多数计算机,即 boot.ini 文件)。 含有下列参数的 bootcfg 命令仅在使用故障恢复控制台时才可用。可在命令提示符下使用带有不同参数的 bootcfg 命令。 用法: bootcfg /default 设置默认引导项。 bootcfg /add 向引导列表中添加 Windows 安装。 bootcfg /rebuild 重复全部 Windows 安装过程并允许用户选择要添加的内容。 注意:使用 bootcfg /rebuild 之前,应先通过 bootcfg /copy 命令备份 boot.ini 文件。 bootcfg /scan 扫描用于 Windows 安装的所有磁盘并显示结果。 注意:这些结果被静态存储,并用于本次会话。如果在本次会话期间磁盘配置发生变化,为获得更新的扫描,必须先重新启动计算机,然后再次扫描磁盘。 bootcfg /list 列出引导列表中已有的条目。 bootcfg /disableredirect 在启动引导程序中禁用重定向。 bootcfg /redirect [ PortBaudRrate] |[ useBiosSettings] 在启动引导程序中通过指定配置启用重定向。 范例: bootcfg /redirect com1 115200 bootcfg /redirect useBiosSettings hkdsk 创建并显示磁盘的状态报告。Chkdsk 命令还可列出并纠正磁盘上的错误。 含有下列参数的 chkdsk 命令仅在使用故障恢复控制台时才可用。可在命令提示符下使用带有不同参数的 chkdsk 命令。 vol [drive:] [ chkdsk [drive:] [/p] [/r] 参数 无 如果不带任何参数,chkdsk 将显示当前驱动器中的磁盘状态。 drive: 指定要 chkdsk 检查的驱动器。 /p 即使驱动器不在 chkdsk 的检查范围内,也执行彻底检查。该参数不对驱动器做任何更改。 /r 找到坏扇区并恢复可
读取
的信息。隐含着 /p 参数。 注意 Chkdsk 命令需要 Autochk.exe 文件。如果不能在启动目录(默认为 %systemroot%System32)中找到该文件,将试着在 Windows 安装 CD 中找到它。如果有多引导系统的计算机,必须保证是在包含 Windows 的驱动器上使用该命令。 Diskpart 创建和删除硬盘驱动器上的分区。diskpart 命令仅在使用故障恢复控制台时才可用。 diskpart [ /add |/delete] [device_name |drive_name |partition_name] [size] 参数 无 如果不带任何参数,diskpart 命令将启动 diskpart 的 Windows 字符模式版本。 /add 创建新的分区。 /delete 删除现有分区。 device_name 要创建或删除分区的设备。设备名称可从 map 命令的输出获得。例如,设备名称: DeviceHardDisk0 drive_name 以驱动器号表示的待删除分区。仅与 /delete 同时使用。以下是驱动器名称的范例: D: partition_name 以分区名称表示的待删除分区。可代替 drive_name 使用。仅与 /delete 同时使用。以下是分区名称的范例: DeviceHardDisk0Partition1 大小 要创建的分区大小,以兆字节 (MB)表示。仅与 /add 同时使用。 范例 下例将删除分区: diskpart /delete Device HardDisk0 Partition3 diskpart /delete F: 下例将在硬盘上添加一个 20 MB 的分区: diskpart /add Device HardDisk0 20 Fixboot
C#
110,499
社区成员
642,566
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章