努力学习

进步进步

 

2007年6月2日

注意项目的当前路径

想用fopen打开当前目录下的一个txt文件,却总是找不到该文件。
困惑了几天 今晚终于把它弄明白了。
原来 打开新文件/文件夹时,更改了当前目录。所以在更改路径前务必获得并保存当前路径,以便在系统其他地方可以用fopen打开“当前目录”下的文件。

posted @ 2007-06-02 22:03 李相前 阅读(141) 评论(0) 编辑

2007年3月26日

如何取消开机自动运行程序

方法一、很多程序都会在注册表的Run中生成数据,解决的方法是运行regedit,找到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,删除右边窗口的相关数据,就是软件的启动项。
方法二、在运行里输入“msconfig”命令,打开启动对话框,把要取消的动项目去掉勾选即可
方法三、针对特定程序,在它们的设置项里,取消开机自动运行选项

posted @ 2007-03-26 08:02 李相前 阅读(24349) 评论(3) 编辑

2006年12月8日

TCP/IP5层模型及对应的协议

TCP/IP的层                               对应的TCP/IP协议                          应用在各层的硬件设备
应用层(Application):                                                                                     应用程序网关(application gateway)
        Telnet: 远程登录                                                                                       (在应用层连接两部分应用程序)    
        FTP(File Transfer Protocol):文件传输协议
        HTTP(Hyper Text Transfer Protocol):超文本传输协议
        SMTP(Simple Mail Transter Protocol):简单邮件传输协议
        POP3(Post Office Ptotocol):邮局协议
        SNMP(Simple Network Mangement Protocol):简单网络管理协议
        DNS(Domain Name System):域名系统
传输层(Transport):                                                                        传输网关(transport gateway)
       TCP(Transmission Control Potocol):传输控制协议                  (在传输层连接两个网络)
       UDP(User Data Potocol):用户数据协议
网络层(Internet):                                                                            多协议路由器(multiprotocol router)
       IP(Internet Protocol):网络协议                                                     (在异构网络间转发分组)
       ARP(Address Resolution Protocol):地址解析协议
       RARP(Reverse Address Resolution Protocol) :逆地址解析协议
       ICMP(Internet Control Message Protocol):因特网控制消息协议
       IGMP(Internet Group Manage Protocol):因特网组管理协议
       BOOTP (Bootstrap):可选安全启动协议
数据链路层(Data Link):                                                                     网桥(bridge)交换机(switcher)
  HDLC(High Data Link Control):高级数据链路控制                   (在LAN之间存储-转发数据链路针)
        SLIP(Serial Line IP):串行线路IP
        PPP(Point-to-Point Protocol):点到点协议
        802.2等
物理层(Physical):                                                                             中继器(repeater) 集线器(hub)
         无                                                                   (放大或再生弱的信号,在两个电缆段之间复制每一个比特)

posted @ 2006-12-08 11:34 李相前 阅读(1452) 评论(0) 编辑

2006年12月1日

vs.net 2005, 没有找到MSVCR80D.dll的完美解决方案

问题描述:大部分的vs.net 2005的用户在新建“win32项目-windows应用程序”的时候,新建的工程都通不过去,出现如下提示:
Solution to “MSVCR80D.dll not found” by hua.
“没有找到MSVCR80D.dll,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题。”的完美解决方案^_^感觉偶做的还不错

问题所在:由于vs.net 2005 采用了一种新的DLL方案,搞成一个exe还要配有一个manifest文件(一般在嵌入文件里了,所以看不到,不过也可以不嵌入,这样会生产一个<程序名>.exe.manifest的文件,没它exe自己就转不了了:)这是个新功能,微软弄了个新工具(mt.exe),结果不好用,好像是fat32下时间戳有问题(在ntfs下这个问题就没有了),搞得manifest有时嵌入不到exe中(默认配置是嵌入的,所以就报错找不到dll了。

解决方案(3个都可以,由以第3个最帅,我做的:):
1.    微软对于这个问题应该也有处理,不过感觉不是很人性化。在“属性->配置属性->清单工具->常规“下有一个”使用FAT32解决办法,把它选成是,就可以了。(注意:一定要先配置这个选项,然后再编译工程,要不然还是不好用:)
2.    找到你的工程的文件夹,如(myproject),找到其下的myproject\myproject\Debug\ myproject.rec,把它删掉(删掉整个Debug目录也可以),重新编译,搞定!
3.    本解决方案是俺独创的,感觉爽多了,可以直接再应用向导中配置,严重符合高级人机界面要求:)好,
1)    首先找到你的vs.net安装目录(如我的是E:\Program Files\Microsoft Visual Studio 8),定位到Microsoft Visual Studio 8\VC\VCWizards\AppWiz\Generic\Application文件夹,备份这个Application文件夹,不然一会你自己改咂了我可不管啊:)。
2)    打开html\2052,看到两个文件了吧,就那个AppSettings.htm了,这个管着你的那个配置向导的界面,用UE(不要告诉我你不知道ue啥东西,baidu it)打开,在266行“                </SPAN>”后回车,然后插入一下内容:
<!-- this (hua)section is added by HUA. -->
                    <br><br><br><br><br>
                    
                <span class="itemTextTop" id="FILE_SYSTEM_SPAN" title="">选择你所使用的文件系统:
                    
                       <P CLASS="Spacer"> </P>
                    
                        <INPUT TYPE="radio" CLASS="Radio" checked onPropertyChange="" NAME="filesystem" ID="FAT32" ACCESSKEY="F" TITLE="FAT32">
                        <DIV CLASS="itemTextRadioB" ID="FAT32_DIV" TITLE="FAT32">
                        <LABEL FOR="FAT32" ID="FAT32_LABEL">FAT32(<U>F</U>)</LABEL>
                        </DIV>

                      <BR>

                        <INPUT TYPE="radio" CLASS="Radio" onPropertyChange="" NAME="filesystem" ID="NTFS" ACCESSKEY="N" TITLE="NTFS">
                        <DIV CLASS="itemTextRadioB" ID="NTFS_DIV" TITLE="NTFS">
                        <LABEL FOR="NTFS" ID="NTFS_LABEL">NTFS(<U>N</U>)</LABEL>
                        </DIV>
                </span>
<!-- end of (hua)section -->
好,保存关闭,这个改完了,准备下一个。

3)    打开scripts\2052,这里就一个文件,ue打开它,找到138行“        var bATL = wizard.FindSymbol("SUPPORT_ATL");”其后回车,插入如下内容:
// this (hua)section is added by HUA.
        var MFTool = config.Tools("VCManifestTool");
        MFTool.UseFAT32Workaround = true;
// end of (hua)section    
        好,继续找到210行(源文件的210,你加了上边的语句就不是210了:)“        config = proj.Object.Configurations.Item("Release");”注意这次要在这行“前边”加如下内容:
// this (hua)section is added by HUA.
        if(bFAT32)
        {
            var MFTool = config.Tools("VCManifestTool");
            MFTool.UseFAT32Workaround = true;
        }
// end of (hua)section    
好了,终于都改完了,打开你的vs.net 2005新建一个win32应用程序看看吧,效果还不错吧:)为了这个问题,耽误了我一天的考研复习时间,希望大家能用的上。
另外附个国外的bbs:http://forums.microsoft.com/MSDN/default.aspx?SiteID=1
Msdn的,肯定不错了,上边有vs.net的开发人员活动,都是很官方的东西,大家可以看看,不过英语要够好哦:)

(转载)

posted @ 2006-12-01 16:49 李相前 阅读(9766) 评论(8) 编辑

深入理解sizeof

最近在论坛里总有人问关于sizeof的问题,并且本人对这个问题也一直没有得到很好的解决,索性今天对它来个较为详细的总结,同时结合strlen进行比较,如果能对大家有点点帮助,这是我最大的欣慰了。

一、好首先看看sizeof和strlen在MSDN上的定义:

首先看一MSDN上如何对sizeof进行定义的:

sizeof Operator
sizeof expression
The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type
(including aggregate types). This keyword returns a value of type size_t.
The expression is either an identifier or a type-cast expression (a type specifier enclosed in
parentheses).
When applied to a structure type or variable, sizeof returns the actual size, which may include
padding bytes inserted for alignment. When applied to a statically dimensioned array, sizeof
returns the size of the entire array. The sizeof operator cannot return the size of dynamically
allocated arrays or external arrays.

然后再看一下对strlen是如何定义的:

strlen
Get the length of a string.
Routine Required Header:
strlen <string.h>
size_t strlen( const char *string );
Parameter
string:Null-terminated string
Libraries
All versions of the C run-time libraries.
Return Value
Each of these functions returns the number of characters in string, excluding the terminal
NULL. No return value is reserved to indicate an error.
Remarks
Each of these functions returns the number of characters in string, not including the
terminating null character. wcslen is a wide-character version of strlen; the argument of
wcslen is a wide-character string. wcslen and strlen behave identically otherwise.
二、由几个例子说开去。

第一个例子:
char* ss = "0123456789";
sizeof(ss) 结果 4 ===》ss是指向字符串常量的字符指针
sizeof(*ss) 结果 1 ===》*ss是第一个字符
char ss[] = "0123456789";
sizeof(ss) 结果 11 ===》ss是数组,计算到\0位置,因此是10+1
sizeof(*ss) 结果 1 ===》*ss是第一个字符
char ss[100] = "0123456789";
sizeof(ss) 结果是100 ===》ss表示在内存中的大小 100×1
strlen(ss) 结果是10 ===》strlen是个函数内部实现是用一个循环计算到\0为止之前
int ss[100] = "0123456789";
sizeof(ss) 结果 400 ===》ss表示再内存中的大小 100×4
strlen(ss) 错误 ===》strlen的参数只能是char* 且必须是以''\0''结尾的
char q[]="abc";
char p[]="a\n";
sizeof(q),sizeof(p),strlen(q),strlen(p);
结果是 4 3 3 2      
第二个例子:
class X
{
int i;
int j;
char k;
};
X x;
cout<<sizeof(X)<<endl; 结果 12 ===》内存补齐
cout<<sizeof(x)<<endl; 结果 12 同上
第三个例子:
char szPath[MAX_PATH]
  如果在函数内这样定义,那么sizeof(szPath)将会是MAX_PATH,但是将szPath作为虚参声明时(void fun(char szPath[MAX_PATH])),sizeof(szPath)却会是4(指针大小)

三、sizeof深入理解。 四、结束语

sizeof使用场合。

(转贴 作者:房秉毅

posted @ 2006-12-01 16:36 李相前 阅读(226) 评论(0) 编辑

2006年11月15日

VC6.0:Setup was unable to create a DCOM user account

BUG:Visual Studio 6.0 中出现错误消息“Setup Was Unable to Create a DCOM User Account”(安装程序无法创建 DCOM 用户帐户)

症状

当您运行 Visual Studio 6.0 安装程序时,可能会收到下面的错误消息:
Setup was unable to create a DCOM user account in order to register <path>\valec.exe
此错误消息首先出现,并可能跟随第二条消息,指示安装程序已失败。

原因

Visual Studio Analyzer 是 Visual Studio Enterprise Edition 6.0 版中包含的产品之一,由于 Windows 2000 中用户的安全策略发生了更改,因此它无法创建需要运行的本地用户帐户

解决方案

重新安装不含 Visual Studio Analyzer 的 Visual Studio 6.0 Enterprise Edition:
1. 使用自定义安装,在“Visual Studio 6.0 Enterprise – 自定义”页上,单击“企业版工具”,然后单击“更改选项”。
2. 在“Visual Studio 6.0 Enterprise – 企业版工具”页上的“选项”下,确保未选中“Visual Studio Analyzer”复选框。
3. 单击以选择要安装的所有其他 Visual Studio 组件,然后单击“确定”。
4. 单击“继续”,然后按照出现的说明进行操作。
安装 Visual Studio Analyzer:
1. 在“控制面板”中,双击“添加/删除程序”,然后单击“Microsoft Visual Studio 6.0 Enterprise Edition”。
2. 单击“更改/删除”。
3. 在 Visual Studio 6.0 Enterprise 安装程序中,单击“添加/删除”。
4. 在“Visual Studio 6.0 Enterprise – 维护”页上,单击“企业版工具”,然后单击“更改选项”。
5. 在“Visual Studio 6.0 Enterprise – 企业版工具”页上的“选项”下,单击“Visual Studio Analyzer”,然后单击“确定”。
6. 在“Visual Studio 6.0 Enterprise – 维护”页上,单击“继续”,然后按照出现的说明进行操作。

当您收到“症状”部分中描述的错误消息时,请继续执行“Visual Studio 安装向导”。安装程序将报告失败。
创建 Visual Studio Analyzer 将以其身份运行的本地帐户:
1. 在运行 Visual Studio Enterprise Edition 6.0 的计算机上,创建一个本地用户。有关如何创建本地用户的信息,请参阅 Windows 2000 帮助。
2. 运行分布式 COM 配置 (dcomcnfg.exe)。
3. 在“应用程序”选项卡上,单击“MSVSA 本地事件集中器类”,然后单击“属性”。
4. 在“标识”选项卡上,将“此用户”设置为与在此过程的步骤 1 中创建的用户和密码匹配。

posted @ 2006-11-15 09:32 李相前 阅读(4776) 评论(2) 编辑

2006年6月14日

浅析.NET开发中代理模式的使用(转载)

摘要: 当我们需要使用的对象很复杂或者需要很长时间去构造,这时就可以使用代理模式(Proxy)。例如:如果构建一个对象很耗费时间和计算机资源,代理模式(Proxy)允许我们控制这种情况,直到我们需要使用实际的对象。一个代理(Proxy)通常包含和将要使用的对象同样的方法,一旦开始使用这个对象,这些方法将通过代理(Proxy)传递给实际的对象。  一些可以使用代理模式(Proxy)的情况:  1、一个对象,...阅读全文

posted @ 2006-06-14 08:07 李相前 阅读(77) 评论(0) 编辑

Windows mobile 5.0 访问Web service 不能建立网络连接的问题

摘要: 这是困扰我好几天的问题,前天终于解决了。错误:在 Add Web Reference 时,不能使用127.0.0.0或localhost为名。原因:模拟器使用的是虚机,模拟的是一台真正的机器, 所以localhost指的是模拟器本身,PIE比较智能,看能Localhost就会去连Usb线的那台机器。(网友解答)但可能在哪里设置一下会取消这个限制,因为张欣在webcast 060331的讲座的de...阅读全文

posted @ 2006-06-14 08:05 李相前 阅读(941) 评论(2) 编辑

2006年6月8日

HOST表和Terminal Service

摘要: 这两天用vs2005创建web service 时一直被两个错误困扰:=〉[错误1]:目前网站已在HOST表中被重定向。 办法:Hosts表文件在系统中的位置,Windows 9X系统存放在C:\Windows目录,Windows NT/2000系统,其保存在c:\winnt\system32\drivers\etc目录,Windows XP系统保存在c:\windows\system32\dri...阅读全文

posted @ 2006-06-08 08:44 李相前 阅读(642) 评论(1) 编辑

2006年6月4日

恭喜 今天刚开通!

摘要: 以后要常来这里学习!!阅读全文

posted @ 2006-06-04 17:40 李相前 阅读(53) 评论(0) 编辑

仅列出标题  

导航

统计

公告