帮忙修改一下程序,我菜鸟一个

映维网 2008-03-21 11:26:57
#include<iostream.h>
#include<string.h>
class jia
{
public:
jia(char stl[5]);
jia operator+(jia );
void show();
private:
char str[5];
};
jia::jia(char stl[5])
{
strcpy(str,stl);
}
jia jia::operator+(jia)
{
jia A,B;
return strcat(A.str,B.str);

}
void jia::show()
{
cout<<str<<endl;
}
void main()
{
jia A="abcd";
jia B="efgh";
A.show();
B.show();
(A+B).show();
}
...全文
56 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
HelloDan 2008-03-21
  • 打赏
  • 举报
回复

#include<iostream>
#include<string>
#include<cstring>

using namespace std;

class jia
{
public:
jia(char *stl)
{
strncpy(str,stl,4);
str[4]='\0';
}
//jia operator+(const jia & );
void show();
private:
char str[5];
};

/*
jia jia::operator+(jia) //这个你分配好空间了,不宜这样做。
{
jia A,B;
return strcat(A.str,B.str);

}
*/
void jia::show()
{
cout <<str <<endl;
}


int main()
{
jia A="abcd";
jia B="efgh";
A.show();
B.show();
//(A+B).show();

return 0;
}

lzy340623339 2008-03-21
  • 打赏
  • 举报
回复

#include <string.h>
class jia
{
public:
jia(char stl[5]);
char* operator+(jia B);
void show();
private:
char str[5];
};
jia::jia(char stl[5])
{
strcpy(str,stl);
}
char* jia::operator+(jia B)
{
return strcat(str,B.str);

}
void jia::show()
{
cout <<str <<endl;
}
void main()
{
jia A("abcd");
jia B("efgh");
A.show();
B.show();
cout<<A+B<<endl;
}
ryfdizuo 2008-03-21
  • 打赏
  • 举报
回复

//勉强是可以了,
#include <iostream>
#include <string.h>
using namespace std;

class jia
{
public:
jia(){}
jia(char stl[5]);
jia operator+(jia );
void show();
private:
char str[5];
};
jia::jia(char stl[5])
{
strcpy(str,stl);
}
jia jia::operator+(jia)
{
jia A,B;
return strcat(A.str,B.str);

}
void jia::show()
{
cout <<str <<endl;
}
void main()
{
jia A="abcd";
jia B="efgh";
A.show();
B.show();
(A+B).show();
}
作为使用电脑时间比较长的老用户,难免会到朋友或同事家帮忙维护、维修电脑,有时还要帮人购买PC,这时我们肯定会带上硬件检测软件,不过,谁也不能随身总是带着这些软件,如果手头上没有合适的检测软件该怎么办呢?总不能因此就什么都不知道吧?那样你的高手形象大大会受损的,其实,离开这些软件我们也能明明白白查看电脑硬件的配置情况。下面我们就来一起学习一下吧。      一、开机自检中查看硬件配置      机器组装结束后即使不装操作系统也可以进行加电测试,在开机自检的画面中就隐藏着硬件配置的简单介绍哟(由于开机画面一闪而过,要想看清楚的话,记得及时伸手按住“PAUSE”键)。    1.显卡信息      开机自检时首先检查的硬件就是显卡,因此启动机器以后在屏幕左上角出现的几行文字就是有显卡的“个人资料”介绍。四行文字中,第一行“GeForce4 MX440……”标明了显卡的显示核心为GeForce4 MX440、支持AGP 8X技术;第二行“Version……”标明了显卡BIOS的版本,我们可以通过更新显卡BIOS版本“榨取”显卡性能,当然更新后这一行文字也会随之发生变化;第三行“Copyright (C)……”则为厂商的版权信息,标示了显示芯片制造厂商及厂商版权年限;第四行“64.0MB RAM”则标明了显卡显存容量。      2.CPU及硬盘、内存、光驱信息      显示完显卡的基本信息之后,紧接着出现的第二个自检画面则显示了更多的硬件信息,像CPU型号、频率、内存容量、硬盘及光驱信息等都会出现在此画面中。该画面最上面两行文字标示了主板BIOS版本及BIOS制造商的版权信息;紧接着的文字一看就明白啦,当然是主板芯片组喽;其下几行文字则标明了CPU的频率及内存容量、速度。呵呵,我这个CPU和内存是超频使用的,所以频率可不太正规哟;下面四行“IDE……”则标明了连接在IDE主从接口上的设备,包括硬盘型号及光驱型号等等。       3.主板信息     在第二个自检画面的最下方还会出现一行关于主板的信息,前面的日期显示的是当前主板的BIOS更新日期,后面的符号则是该主板所采用的代码,根据代码我们可以了解主板的芯片组型号和生产厂商。以往老主板的自检画面中最下方文字的中间标明的是主板芯片组,这一块板子则将其提到了自检画面的上方。      机器启动之后按“DEL”键进入BIOS设置页面,在基本信息中同样也可以看到机器的硬件信息,与开机画面显示的没有区别。    二、利用设备管理器查看硬件配置      进入操作系统之后,在安装硬件驱动程序的情况下还可以利用设备管理器与DirectX诊断工具来查看硬件配置。下面看看如何利用设备管理器查看硬件信息。进入桌面,鼠标右击“我的电脑”图标,在出现的菜单中选择“属性”,打开“系统属性”窗口,点击“硬件--设备管理器”,在“设备管理器”中显示了机器配置的所有硬件设备。从上往下依次排列着光驱、磁盘控制器芯片、CPU、磁盘驱动器、显示器、键盘、声音及视频等信息,最下方则为显示卡。想要了解哪一种硬件的信息,只要点击其前方的“+”将其下方的内容展开即可。      利用设备管理器除了可以看到常规硬件信息之外,还可以进一步了解主板芯片、声卡及硬盘工作模式等情况。例如想要查看硬盘的工作模式,只要双击相应的IDE通道即可弹出属性窗口,在属性窗口中可轻检看到硬盘的设备类型及传送模式。这些都是开机画面所不能提供的。      需要注意的是在Windows Xp之前的操作系统中所提供的设备管理器是无法用来查看CPU工作频率的,好在我们还有DirectX诊断工具。      三、利用DirectX诊断工具查看硬件配置      DirectX诊断工具可以帮助我们对硬件工作情况作出测试、诊断并进行修改,当然我们也可以利用它来查看机器的硬件配置。运行“系统信息”窗口,找到“工具--DirectX诊断工具”(或者进入安装盘符中Windows目录下的System32目录中运行Dxdiag.exe),在窗口中可以方便地查看硬件信息。    1.查看基本信息      在“DirectX诊断工具”窗口中点击“系统”选项卡,当前日期、计算机名称、操作系统、系统制造商及BIOS版本、CPU处理器频率及及内存容量一目了然。注意喽,虽然我将Celeron 2.0MHz超频至2.40MHz使用,但是DirectX却不认这个帐,依然显示的是未超频的原始频率。看来没有AIDA32,我们同样也可以识别奸商是否将超频的CPU卖给我们!!      2.查看显卡信息      在“DirectX诊断工具”窗口中点击“显示”选项卡,在这里我们可以看到显卡的制造商、显示芯片类型、显存容量、显卡驱动版本、监视器等常规信息。      3.查看音频信息      音频设备往往为人所忽视,但缺了它又不行,单击“声音”选项卡,对其做一番了解吧!同样在出现的窗口中能看到设备的名称、制造商及其驱动程序等等极为详细的资料。不同的是我们还可以点击右下角的“测试DirectSound(T)”对声卡进行一下简单的测试。      怎么样,经过这一番了解,是不是感觉收获挺大的?没有测试软件我们同样也可以了解机器的硬件信息,这下子可以到菜鸟面前充高手了
整合FileDisk和Filemon的MFC开源码,希望对新手有帮助! 说明:对大侠们可能没什么价值,仅以此献给像我一样的菜鸟! 软件环境和框架: 1.软件环境:VS.net2003 + XP IFS + DS3.2 2.框架:采用MFC框架; 功能: 1.自动加载FileDisk和Filemon的驱动程序部分; 2.用FileDisk生成一个虚拟硬盘,并自动分配盘符; 3.对新生成的虚拟盘符挂接Filemon的过滤驱动; 4.退出时自动卸载FileDisk和Filemon驱动; 不完善的地方(有兴趣的朋友可以完善下,并希望完善后请在我这里跟帖上传源码,就算是对我开源的支持,谢谢!): 1.FileDisk生成的虚拟硬盘需要先手动在资源管理器里进行格式化;可以在程序里调用SHFormat之类的启动格式化窗口进行改善,也可以使用第三方提供的格式化函数进行格式化; 2.Filemon目前是应用程序使用按照时间来进行查询的过滤方式,希望能改成驱动程序主动通知应用程序。 ------- 整理后面的回贴后追加的内容 ---------------- 1.在BOOL CMainFrame::Init(void)函数里有段网络通讯的代码,里面访问了我自己建的局域网服务器,大家那里应该是没有的,所以会报错,不好意思!注释或删掉以下内容就好了! CWebWrapper clsWebWrapper; CHttpDataPackage_Receive HttpData_Receive; //Call server function if (clsWebWrapper.PostCommand( _T(""), _T("abcd我你他"), &HttpData_Receive, _T("WebGrab"), this, FALSE, FALSE)) //if (clsWebWrapper.GetCommand( _T(""), _T("abcd我你他"), &HttpData_Receive, // _T("WebGrab"), this, FALSE, FALSE)) { AfxMessageBox(HttpData_Receive.GetContent_DataAll()); } else { AfxMessageBox("网络通讯失败"); return FALSE; } 2.大家如果想看文件过滤出来的信息,可以在BOOL CMainFrame::Init(void)函数里去掉对这句话//m_nTimer = SetTimer( 1, 500/*ms*/, NULL );的注释,那就相当于启动了定时器,然后会有信息显示在子窗口里,,当然我并没有去实现子窗口的滚动,所以子窗口里的内容满了后,就看不到最新的信息了,,哈哈,,我实在是没时间啊,,公司里的项目这2天在出演示版呢,,,忙啊。。。。大家自己加加代码哈,,,这也是个不完善的地方,希望完善了的朋友,,上传下代码啊,,,多谢! 3.另外,请下载使用了的朋友,有空的话来帮忙说下使用上有没有问题啊,如果有问题,我好及时做修改啊,谢谢了!如果可以用的话,有空就帮忙回个贴,说可以用,这样别的朋友就知道这个代码是可以用的,免得大家还以为下了个不能用的东东,那不是郁闷死了!先谢谢了! ------------- 最新补充说明 ------------------- 1.FileDisk和Filemon我用的都是比较老的版本了,FileDisk是2004年的,Filemon是4.34 ;FileDisk的作者在其网站上已经出了新版本了,是2006年的,我下载了,还没时间看过,所以大家有空也可以整合2006的驱动来替换我的老版本,毕竟老版本是可能有些不完善的地方的;而Filemon则没有再继续开放源码,,所以如果有朋友有幸获得了新版本的源码,能不能上传个,,多谢了! 2.Filemon.exe会自动在其目录下创建File.img文件做为虚拟磁盘使用的文件,大家只要手动格式化一次创建出来的虚拟磁盘,以后就不用再格式化,可以不断使用了,所以以后大家要是做成产品的话,可以直接把已经格式化好的对应的File.img文件一起打包到安装包里,呵呵! 3.我放弃了FileDisk中对CDROM部分的支持,以及Filemon中对Win9x的VxD驱动的支持,如果有朋友需要的话,可以自行添加!
hinkpad Marker Slic2.1自助手册 前言:以下教程参考了众多高手的帖子。对于这样的主题之所以再次发布,只是因为很多类似主题的帖子,总是有些语焉不详,让众多会员不甚了了,无法动手。我也是费了一些周折才真正搞明白,并实施成功。附件包含了必备的slic2.1和工具!希望这个对大家有帮忙。教程中所提到的方法和工具,仅供参考,本人不承担任何可能的风险和法律责任。谢谢! 1、如何Marker? 注意:刷过破解版bios的朋友,务必先刷成官方bios!已经是官方bios的略过此步。在这里还是假设你不是太菜鸟,知道怎么刷bios。 1)首先确定自己Thinkpad机型对应的slic2.1型号(后缀为.bin的文件格式)。打开Lenovo网站搜寻对应型号的bios下载页,比如看到T400 2676的bios的信息如下: 支持操作系统: Windows 7 版本: 3.09-1.03/3.10-1.03 发布时间: 2009-10-17 文件名称为:7uuj35us.exe X200的Bios文件名称以6d打头,所以T400 2676对应的Slic2.1为文件名里含有6d的文件,比如TP-6d.bin。 2)使用SLIC_Dump_ToolKit查看自己的BIOS是否有原生的slic并选择正确的slic文件:有原生Slic2.0的用户,注意选择182 bytes的Slic2.1表(本人x200 7457a78用的就是182 bytes的slic2.1表)。无Slic的用户,注意选择374 bytes的Slic2.1表。 如果不确定有没有原生slic,无所谓,182 bytes的和374 bytes都试试吧,成功了的就是对的(如果选错了型号是不能marker的,没有风险)。 3)使用UltraISO(请自行下载)将dos.img镜像写入U盘,即制作好了启动盘。此时U盘中有三个文件: DRVSPACE.BIN IO.SYS MSDOS.SYS 4)把Marker.exe复制到已经制作好的USB启动盘中。 5)把前面确认的对应自己Thinkpad型号的slic2.1文件,比如本人的x200 7457a78的slic2.1文件为tp-6d.bin,将这个文件复制到已经制作好的可启动U盘中。这时你的U盘里面应该有下面这五个文件,一切准备就绪: DRVSPACE.BIN IO.SYS MSDOS.SYS Marker.exe tp-6d.bin 6)重启电脑按F12选择用U盘启动进入DOS,执行如下命令(注意空格和将命令行中的文件改成和你的slic2.1文件名称一样,在这里是本人的Slic2.1文件为tp-6d.bin): marker.exe /w:tp-6d.bin /z 执行速度快如闪电! 如果成功则显示“Programming Done!!!”“**** Success: Process completed (00) ****”等信息,恭喜你! 如果失败则会提示slic型号不对等信息,这时需要重复步骤2)-5)确认更新正确的slic2.1文件,再继续努力。 2、成功marker slic2.1后重启进入Windows 7,可以使用SLIC_Dump_ToolKit查看Slic2.1信息。 如果你安装的就是对应的Lenovo OEM版,则重启后自动激活。 如果没有自动激活(比如你安装的是MSDN版),则导入证书和系列号即可激活。操作如下(现在网上有高手制作了证书和系列号自动导入程序,下载来用就可以了,不用像下面这么麻烦,所以建议你别看了): 1)点击桌面左下角Windows图标启动开始菜单,在“搜索程序和文件”的空行里面敲入cmd,在出现的程序栏上上面的cmd.exe点击鼠标右键选择“管理员身份运行”启动命令行模式。 2)在出现的命令行内输入slmgr.vbs -ilc 证书路径\证书文件名,例如slmgr.vbs -ilc D:\lenovo.xrm-ms,稍等片刻系统就会有提示导入成功。这里假设Lenovo证书的存放路径和名称如上。 3)输入slmgr.vbs -ipk 22TKD-F8XX6-YG69F-9M66D-PMJBM 来导入系列号(这里是Lenovo泄漏的旗舰版OEM系列号),成功后输入slmgr.vbs -ato。 4)检查是否己正确激活。 3、尽情享受正版的快乐吧。 4、注意事项 Marker现在已知可以使用在X200s/t,T400/500,R400上,其他机型未知。不可用在其他品牌机型上! ***如果你只是想刷bios享受正版Windows 7,那你看到这里就可以了。如果你想了解关于Slic和marker的知识,继续看下面的简单介绍。要想深入了解,那多上bios之家吧!*** 5、什么是SLIC。 SLIC是Software Licensing Internal Code的英文缩写,即软件许可内部码,是微软的操作系统激活技术。 6、什么是Marker? 简单来说Marker是在DOS下运行的16位BIOS Flash软件。和一般的BIOS更新程序不同,marker仅能写入BIOS的特殊区域(既SLIC表)。 7、为何建议选择Marker而不选择修改版的BIOS? 1)修改版的BIOS缺点: 修改版的BIOS由原厂BIOS经爱好者修改而来,未经有效的验证,有较高的刷机风险。修改版的BIOS仅仅是通过修改SLIC 的方式将slic2.1加入BIOS某个非正确的空白模块。在下次刷入原厂BIOS后,修改的Slic2.1会消失,造成激活失效。 2)Marker的优势: 由一个简单的DOS flash程序执行,速度极快,选错slic版本,将不会刷新,几乎没有刷机失败风险。Slic2.1将会永久的固化在正常的BIOS模块内,升级BIOS不会丢失Slic2.1。 3)Marker的限制: Marker必须使用经过签名的、验证的、原厂的slic文件才能刷入。这就意味着必须有原厂的有效slic文件才行。对X200/T400等这一代的Thinkpad来说,这个不是问题,因为已经有预装Windows 7的机型,从这些机型导出slic2.1即可共享。

64,849

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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