发现在子函数中的申请的动态内存数组赋值a[i]=b,其中i为负数,当时不会保存,因为动态内存寻址是可以找到-1,-2之类的地址的,但是破坏了可能破环其他的代码运行,当时的现象是_CrtDumpMemoryLeaks函数打印不出子函数之外的内存分配请,而在赋值之前是可以打印函数外面申请的内存情况的。
教训:发现内存崩溃,先利用工具检测,锁定范围,在寻找内存错误!
Windows Server 2003
Windows Server 2008
到了登陆界面
它提示 第一次登陆必须修改密码
修改了好多次都提示
无法更新密码。为新密码提供的值不符合字符域的长度、复杂性或历史要求。 我密码设的感觉很复杂了啊 又是字母 又是数字 还9位以上,怎么不符合呢?
本人验证了下, 大写字母+小写字母+数字 即可通过
注:开始-程序-管理工具-域安全策略(修改成如下,就可以随便设置密码了)
推荐安卓开发神器(里面有各种UI特效和android代码库实例) 一、关于AndroidManifest.xml
AndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的Activities, ContentProviders, Services, 和Intent Receivers,还能指定permissions和instrumentation(安全控制和测试)
二、AndroidManifest.xml结构
<?xmlversion="1.0"encoding="utf-8"?>
<manifest>
<application>
<activity>
<intent-filter>
<action/>
<category/>
</intent-filter>
</activity>
<activity-alias>
<intent-filter></intent-filter>
<meta-data/>
</activity-alias>
<service>
<intent-filter></intent-filter>
<meta-data/>
</service>
<receiver>
<intent-filter></intent-filter>
<meta-data/>
</receiver>
<provider>
<grant-uri-permission/>
<meta-data/>
</provider>
<uses-library/>
</application>
<uses-permission/>
<permission/>
<permission-tree/>
<permission-group/>
<instrumentation/>
<uses-sdk/>
<uses-configuration/> <uses-feature/> <supports-screens/>
</manifest>
三、各个节点的详细介绍
上面就是整个am(androidManifest).xml的结构,下面以外向内开始阐述~~
1、第一层(<Manifest>):(属性)
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.woody.test"
android:sharedUserId="string"
android:sharedUserLabel="string resource"
android:versionCode="integer"
android:versionName="string"
android:installLocation=["auto" | "internalOnly" | "preferExternal"] >
</manifest>
A、xmlns:android
定义android命名空间,一般为http://schemas.android.com/apk/res/android,这样使得Android中各种标准属性能在文件中使用,提供了大部分元素中的数据。
[转] ASP.net的身份验证方式有哪些?分别是什么原理? Asp.net的身份验证有有三种,分别是"Windows | Forms | Passport",其中又以Forms验证用的最多,也最灵活。
Forms 验证方式对基于用户的验证授权提供了很好的支持,可以通过一个登录页面验证用户的身份,将此用户的身份发回到客户端的Cookie,之后此用户再访问这个 web应用就会连同这个身份Cookie一起发送到服务端。服务端上的授权设置就可以根据不同目录对不同用户的访问授权进行控制了。
问题来了,在实际是用中我们往往需要的是基于角色,或者说基于用户组的验证和授权。对一个网站来说,一般的验证授权的模式应该是这样的:根据实际需 求把用户分成不同的身份,就是角色,或者说是用户组,验证过程不但要验证这个用户本身的身份,还要验证它是属于哪个角色的。而访问授权是根据角色来设置 的,某些角色可以访问哪些资源,不可以访问哪些资源等等。要是基于用户来授权访问将会是个很不实际的做法,用户有很多,还可能随时的增减,不可能在配置文 件中随时的为不断增加的新用户去增加访问授权的。
下面大概的看一下Forms的过程。
Forms身份验证基本原理:
一.身份验证
要采用Forms身份验证,先要在应用程序根目录中的Web.config中做相应的设置:
<authentication mode="forms"> <forms name=".ASPXAUTH " slidingExpiration="true" loginUrl="/login.aspx" timeout="30" path= "/" domain=".abc.com"> </forms> </authentication> 其中<authentication mode= "forms"> 表示本应用程序采用Forms验证方式。
1. <forms>标签中的name表示指定要用于身份验证的 HTTP Cookie。默认情况下,name 的值是 .ASPXAUTH。采用此种方式验证用户后,以此用户的信息建立一个FormsAuthenticationTicket类型的身份验证票,再加密序列 化为一个字符串,最后将这个字符串写到客户端的name指定名字的Cookie中.一旦这个Cookie写到客户端后,此用户再次访问这个web应用时会 将连同Cookie一起发送到服务端,服务端将会知道此用户是已经验证过的. 再看一下身份验证票都包含哪些信息呢,我们看一下FormsAuthenticationTicket类:
CookiePath: 返回发出 Cookie 的路径。注意,窗体的路径设置为 /。由于窗体区分大小写,这是为了防止站点中的 URL 的大小写不一致而采取的一种保护措施。这在刷新 Cookie 时使用 Expiration: 获取 Cookie 过期的日期/时间。 IsPersistent: 如果已发出持久的 Cookie,则返回 true。否则,身份验证 Cookie 将限制在浏览器生命周期范围内。 IssueDate: 获取最初发出 Cookie 的日期/时间。 Name: 获取与身份验证 Cookie 关联的用户名。 UserData :获取存储在 Cookie 中的应用程序定义字符串。 Version: 返回字节版本号供将来使用。 转载于:https://www.
使用C#做桌面开发,当点击右上角的关闭按钮时,希望程序不是关闭而是最小化到通知栏的时候,也许我们会使用 FormClosing 事件中来取消窗体的关闭。但这也会导致一个问题就是当程序运行的时候如果关闭电脑,则电脑无法正常关机。可以用以下方法来解决
protected override void WndProc(ref Message msg)
{
if (msg.Msg == 0x11)//WM_QUERYENDSESSION
{
msg.Result = (IntPtr)1;//0不关闭程序;1关闭程序
return;
}
else if (msm.Msg == 0x16)//WM_ENDSESSION
{
}
base.WndProc(ref msg);
}
原文:http://blog.csdn.net/zhufeng98/archive/2009/03/11/3981970.aspx
Microsoft发布的Windows Live Writer是一款管理个人博客的客户端工具。Windows Live Writer不光支持Windows Live Spaces的用户使用,同时支持现在网络上的其他流行的一系列的Blog内容管理系统。
用Windows Live Writer添加CSDN博客的方法如下:
安装Windows Live Writer后,会有一个添加账户的向导
第一步,"选择博客类型"时,选择"其它博客服务"。
第二步,中输入你的CSDN博客首页地址,比如:
用户网址:http://blog.csdn.net/[用户名]
接着输入CSDN的登录用户名和密码
第三步,选择提供程序,在此选择你的blog 提供商的类型及它的接口地址。CSDN blog使用的 Metaweblog API 做为接口提供,所以这里选:Metaweblog API 这种方式。完后输入blog 的接口地址。
CSDN blogt的地址就为 http://blog.csdn.net/[用户名]/services/metablogapi.aspx
点击下一步验证你的博客信息就可以了。
在Windows Live Writer中写好文章后,点击发布就可更新到你的CSDN博客中。
C++指针比较的不是地址,而是对象同一性问题。即指针地址可以不同,而比较的结果却相同。
这个问题用多重继承比较直观;存在一个从子类到任一个基类的预定义转化。一个基类的指针是与其派生类的指针==的,并不是因为地址相同而是类型相同,因为派生类就是基类,就像班长就是学生一样。(这从更抽象的一个层次来对待指针)
一个非常重要的经验,处理指向对象的引用或指针时,必须小心避免丢失类型信息(如把指针赋值给void*指针)。一旦复制到void *类型,就会
去掉类型信息,编译器就别无他法,只好求助于原始地址比较了;而这样的比较对于指向类对象的指针来说,很少会是正确的。
网站无法访问http错误种类及原因- HTTP错误400 400请求出错
由于语法格式有误,服务器无法理解此请求。不作修改,客户程序就无法重复此请求。 HTTP错误401 401.1未授权:登录失败
此错误表明传输给服务器的证书与登录服务器所需的证书不匹配。
请与Web服务器的管理员联系,以确认您是否具有访问所请求资源的权限。
HTTP错误401 401.2未授权:服务器的配置导致登录失败
此错误表明传输给服务器的证书与登录服务器所需的证书不匹配。此错误通常由未发送正确的WWW验证表头字段所致。
请与Web服务器的管理员联系,以确认您是否具有访问所请求资源的权限。 HTTP错误401 401.3未授权:由于资源中的ACL而未授权
此错误表明客户所传输的证书没有对服务器中特定资源的访问权限。此资源可能是客户机中的地址行所列出的网页或文件,也可能是处理客户机中的地址行所列出的文件所需服务器上的其他文件。 请记录试图访问的完整地址,并与Web服务器的管理员联系以确认您是否具有访问所请求资源的权限。F
HTTP错误401 401.4未授权:授权服务被筛选程序拒绝;
此错误表明Web服务器已经安装了筛选程序,用以验证连接到服务器的用户。此筛选程序拒绝连接到此服务器的真品证书的访问。
请记录试图访问的完整地址,并与Web服务器的管理员联系以确认您是否具有访问所请求资源的权限。
HTTP错误401 401.5未授权:ISAPI/CGI应用程序的授权失败
此错误表明试图使用的Web服务器中的地址已经安装了ISAPI或CGI程序,在继续之前用以验证用户的证书。此程序拒绝用来连接到服务器的真品证书的访问。
请记录试图访问的完整地址,并与Web服务器的管理员联系以确认您是否具有访问所请求资源的权限。
HTTP错误403 -限制为仅本地主机访问Internet服务管理器 HTTP错误403 403.1禁止:禁止执行访问
如果从并不允许执行程序的目录中执行CGI、ISAPI或其他执行程序就可能引起此错误。
如果问题依然存在,请与Web服务器的管理员联系。
HTTP错误403 403.2禁止:禁止读取访问
如果没有可用的默认网页或未启用此目录的目录浏览,或者试图显示驻留在只标记为执行或脚本权限的目录中的HTML页时就会导致此错误。
如果问题依然存在,请与Web服务器的管理员联系。
HTTP错误403 403.3禁止:禁止写访问
如果试图上载或修改不允许写访问的目录中的文件,就会导致此问题。
如果问题依然存在,请与Web服务器的管理员联系。
HTTP错误403 403.4禁止:需要
此错误表明试图访问的网页受安全套接字层(SSL)的保护。要查看,必须在试图访问的地址前输入https://以启用SSL。
如果问题依然存在,请与Web服务器的管理员联系
HTTP错误403 403.5禁止:需要SSL 128
此错误消息表明您试图访问的资源受128位的安全套接字层(SSL)保护。要查看此资源,需要有支持此SSL层的浏览器。
请确认浏览器是否支持128位SSL安全性。如果支持,就与Web服务器的管理员联系,并报告问题。403.6禁止:拒绝IP地址
处于安全考虑,安装程序限制Internet Service Manager (HTML)仅允许从服务器进行访问(本地主机,IP地址127.0.0.1)。
要远程使用Internet Service Manager (HTML)管理此服务器,请转到此服务器,并使用Internet服务管理器更新Web站点IISADMIN的IP地址限制:
使用"开始"菜单打开Internet Service Manager Fw
展开所连接的Web站点!
选择IISADMIN虚拟目录
右键单击并选择属性
选择"目录安全性"选项卡
编辑IP地址和域名限制
HTTP错误403 403.6禁止:拒绝IP地址'
如果服务器含有不允许访问此站点的IP地址列表,并且您正使用的IP地址在此列表中,就会导致此问题。
如果问题依然存在,请与Web服务器的管理员联系。
HTTP错误403 403.
Yongtian Wang (Ph.D advisor), Professor, jointly, Optics and Computer Science Department, Beijing Institute of Technology, China. He is a director of Center for Research on Optoelectronics, Information, Technology & Color Engineering. He is a Changjiang Scholar, Ministry of Education, China. He is a SPIE fellow. Song-Chun Zhu (Co-Ph.D advisor), Professor, jointly, Statistics and Computer Science Department, University of California, Los Angeles. He is is a director of the UCLA Center for Image and Vision Science, and a founder of the Lotus Hill Research Institute.
在Android中要让一个程序的界面始终保持一个方向,不随手机方向转动而变化的办法: 只要在AndroidManifest.xml里面配置一下就可以了。 在AndroidManifest.xml的activity(需要禁止转向的activity)配置中加入 android:screenOrientation=”landscape”属性即可(landscape是横向,portrait是纵向)。例如: <application android:persistent="true" android:label="@string/home_title" android:icon="@drawable/ic_launcher_home"> <activity android:name="Home" android:theme="@style/Theme" android:launchMode="singleInstance" android:stateNotNeeded="true" android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.HOME"/> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> 另外,android中每次屏幕方向切换时都会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在Activity 再次Create的时候载入配置,那样,进行中的游戏就不会自动重启了! 要避免在转屏时重启activity,可以通过在androidmanifest.xml文件中重新定义方向(给每个activity加上 android:configChanges=”keyboardHidden|orientation”属性),并根据Activity的重写 onConfigurationChanged(Configuration newConfig)方法来控制,这样在转屏时就不会重启activity了,而是会去调用 onConfigurationChanged(Configuration newConfig)这个钩子方法。例如: if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){ //横向 setContentView(R.layout.file_list_landscape); }else{ //竖向 setContentView(R.layout.file_list); } 在模拟器中,要使程序转屏可以使用快捷键F12或Ctrl+F11来切换。当然在用命令行启动模拟器时可以直接使用参数emulator.exe -skin HVGA-L来启动横屏的程序。
1.引言本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分 析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。 许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最 简单的strcpy 函数都可看出面试者在技术上究竟达到了怎样的程度,我们能真正写好一个 strcpy 函数吗?我们都觉得自己能,可是我们写出的strcpy 很可能只能拿到10 分中的2 分。 读者可从本文看到strcpy 函数从2 分到10 分解答的例子,看看自己属于什么样的层次。此 外,还有一些面试题考查面试者敏捷的思维能力。分析这些面试题,本身包含很强的 趣味性;而作为一名研发人员,通过对这些面试题的深入剖析则可进一步增强自身的内功。 2. 找错题试题1 : void test1(){ char string[10]; char* str1 = "0123456789"; strcpy( string, str1 );} 试题2:void test2(){ char string[10], str1[10]; int i; for(i=0; i<10; i++) { str1[i] = 'a'; } strcpy( string, str1 );} 试题3 : void test3(char* str1){ char string[10]; if( strlen( str1 ) <= 10 ) { strcpy( string, str1 ); }} 解答: 试题1 字符串str1 需要11 个字节才能存放下(包括末尾的’/0’),而string 只有10 个字节 的空间,strcpy 会导致数组越界; 对试题2,如果面试者指出字符数组str1 不能在数组 内结束可以给3 分;如果面试者指出strcpy(string, str1)调用使得从str1 内存起复制到string 内存起所复制的字节数具有不确定性可以给7 分,在此基础上指出库函数strcpy 工作方式 的给10 分; 对试题3,if(strlen(str1) <= 10)应改为if(strlen(str1) < 10),因为strlen 的 结果未统计’/0’所占用的1 个字节。剖析: 考查对基本功的掌握: (1)字符串以’/0’ 结尾; (2)对数组越界把握的敏感度; (3)库函数strcpy 的工作方式,如果编写一个 标准strcpy 函数的总分值为10,下面给出几个不同得分的答案: 2 分void strcpy( char *strDest, char *strSrc ){ while( (*strDest++ = * strSrc++) !
//上海贝尔的面试题43 分即可进入复试 一、请填写BOOL , float, 指针变量与“零值”比较的if 语句。(10 分) 提示:这里“零值”可以是0, 0.0 , FALSE 或者“空指针”。例如int 变量n 与“零值”比较的if 语句 为: if ( n == 0 ) if ( n != 0 ) 以此类推。 请写出BOOL flag 与“零值”比较的if 语句: 请写出float x 与“零值”比较的if 语句: 请写出char *p 与“零值”比较的if 语句: 二、以下为Windows NT 下的32 位C++程序,请计算sizeof 的值(10 分) char str[] = “Hello” ; char *p = str ; int n = 10; 请计算 sizeof (str ) = sizeof ( p ) = sizeof ( n ) =void Func ( char str[100]) { 请计算 sizeof( str ) = } void *p = malloc( 100 ); 请计算 sizeof ( p ) = 、简答题(25 分) 1、头文件中的ifndef/define/endif 干什么用? 2、#i nclude 和#i nclude “filename.
已经n 次倒在c 语言面试的问题上,总结了一下,是由于基础知识不扎实。痛定思痛,决定 好好努力!
1.引言 本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题 的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。 许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一 个最简单的strcpy 函数都可看出面试者在技术上究竟达到了怎样的程度,我们能真正写好一 个strcpy 函数吗?我们都觉得自己能,可是我们写出的strcpy 很可能只能拿到10 分中的2 分。读者可从本文看到strcpy 函数从2 分到10 分解答的例子,看看自己属于什么样的层次。 此外,还有一些面试题考查面试者敏捷的思维能力。 分析这些面试题,本身包含很强的趣味性;而作为一名研发人员,通过对这些面试题的 深入剖析则可进一步增强自身的内功。
2.找错题 试题1: void test1() { char string[10]; char* str1 = "0123456789"; strcpy( string, str1 ); } 试题2: void test2() { char string[10], str1[10]; int i; for(i=0; i<10; i++) { str1[i] = 'a'; } strcpy( string, str1 ); } 试题3: void test3(char* str1) { char string[10]; if( strlen( str1 ) <= 10 ) { strcpy( string, str1 ); } } 解答: 试题1 字符串str1 需要11 个字节才能存放下(包括末尾的’ 0’),而string 只有10 个字 节的空间,strcpy 会导致数组越界; 对试题2,如果面试者指出字符数组str1 不能在数组内结束可以给3 分;如果面试者指 出strcpy(string, str1)调用使得从str1 内存起复制到string 内存起所复制的字节数具有不确定 性可以给7 分,在此基础上指出库函数strcpy 工作方式的给10 分; 对试题3,if(strlen(str1) <= 10)应改为if(strlen(str1) < 10),因为strlen 的结果未统计’ 0’所占用的1 个字节。 剖析: 考查对基本功的掌握: (1)字符串以’ 0’结尾; (2)对数组越界把握的敏感度; (3)库函数strcpy 的工作方式,如果编写一个标准strcpy 函数的总分值为10,下面给出 几个不同得分的答案: 2 分 void strcpy( char *strDest, char *strSrc ) { while( (*strDest++ = * strSrc++) !
前言: string 的角色 1 string 使用 1.1 充分使用string 操作符 1.2 眼花缭乱的string find 函数 1.3 string insert, replace, erase 2 string 和C 风格字符串 3 string 和Charactor Traits 4 string 建议 5 小结 6 附录前言: string 的角色
C++ 语言是个十分优秀的语言,但优秀并不表示完美。还是有许多人不愿意使用C 或者C++,为什么? 原因众多,其中之一就是C/C++的文本处理功能太麻烦,用起来很不方便。以前没有接触过其他语言时, 每当别人这么说,我总是不屑一顾,认为他们根本就没有领会C++的精华,或者不太懂C++,现在我接 触perl, php, 和Shell 脚本以后,开始理解了以前为什么有人说C++文本处理不方便了。 举例来说,如果文本格式是:用户名电话号码,文件名name.txt Tom 23245332 Jenny 22231231 Heny 22183942 Tom 23245332 ... 现在我们需要对用户名排序,且只输出不同的姓名。 那么在shell 编程中,可以这样用: awk '{print $1}' name.txt | sort | uniq 简单吧? 如果使用C/C++ 就麻烦了,他需要做以下工作: 先打开文件,检测文件是否打开,如果失败,则退出。 声明一个足够大得二维字符数组或者一个字符指针数组 读入一行到字符空间 然后分析一行的结构,找到空格,存入字符数组中。 关闭文件 写一个排序函数,或者使用写一个比较函数,使用qsort 排序 遍历数组,比较是否有相同的,如果有,则要删除,copy.
1. 以下三条输出语句分别输出什么? char str1[] = "abc"; char str2[] = "abc"; const char str3[] = "abc"; const char str4[] = "abc"; const char* str5 = "abc"; const char* str6 = "abc"; cout << boolalpha << ( str1==str2 ) << endl; // 输出什么? cout << boolalpha << ( str3==str4 ) << endl; // 输出什么? cout << boolalpha << ( str5==str6 ) << endl; // 输出什么? 答:分别输出false,false,true。str1 和str2 都是字符数组,每个都有其自己的存储区,它们的值则是各 存储区首地址,不等;str3 和str4 同上,只是按const 语义,它们所指向的数据区不能修改。str5 和str6 并非数组而是字符指针,并不分配存储区,其后的“abc”以常量形式存于静态数据区,而它们自己仅是指 向该区首地址的指针,相等。 2.
1. 求下面函数的返回值(微软) int func(x) { int countx = 0; while(x) { countx ++; x = x&(x-1); } return countx; } 假定x = 9999。答案:8 思路:将x 转化为2 进制,看含有的1 的个数。
2. 什么是“引用”?申明和使用“引用”要注意哪些问题? 答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全 相同。申明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变 量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。 声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名, 它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。 不能建立数组的引用。
3. 将“引用”作为函数参数有哪些特点? (1)传递引用给函数与传递指针的效果是一样的。这时,被调函数的形参就成为原来 主调函数中的实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的操作 就是对其相应的目标对象(在主调函数中)的操作。 (2)使用引用传递函数的参数,在内存中并没有产生实参的副本,它是直接对实参操 作;而使用一般变量传递函数的参数,当发生函数调用时,需要给形参分配存储单元, 形参变量是实参变量的副本;如果传递的是对象,还将调用拷贝构造函数。因此,当参 数传递的数据较大时,用引用比用一般变量传递参数的效率和所占空间都好。 (3)使用指针作为函数的参数虽然也能达到与使用引用的效果,但是,在被调函数中 同样要给形参分配存储单元,且需要重复使用"*指针变量名"的形式进行运算,这很容 易产生错误且程序的阅读性较差;另一方面,在主调函数的调用点处,必须用变量的地 址作为实参。而引用更容易使用,更清晰。
4. 在什么时候需要使用“常引用”? 如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在函数中被改变,就 应使用常引用。常引用声明方式:const 类型标识符&引用名=目标变量名; 例1 int a ; const int &ra=a; ra=1; //错误 a=1; //正确 例2 string foo( ); void bar(string & s); 那么下面的表达式将是非法的: bar(foo( )); bar("
Pro/Toolkit可以帮助我们开发出自己需要而ProE本身不提供的一些工具,最新的ProE4.0支持Microsoft Visual Studio 2005,本文为您介绍二次开发的安装环境测试。
安装好pro/E 4.0和vs2005,一定要注意pro/E的安装目录不要有空格!!
第一步:新建项目
第二步:如图选择“生成文件项目(makefile)”,输入名称和位置目录
第三步:进入设置向导
第四步:设置“调试”配置
设置值
命令行 nmake /f make_install dll
输出 pt_inst_test.dll
清除/ 重建所有命令 nmake /f make_install dll_clean
包括搜索路径
/protoolkit/includes
第五步:设置“发布”配置
第六步:复制make_install文件(C:/ptc/proeWildfire4/protoolkit/i486_nt/obj)到测试目录(C:/toolkit_test/ProTOOLKITInstall/ProTOOLKITInstall)
第七步:项目??添加现有项...
第八步:选择make_install文件
添加文件后的效果
第九步:设置PROTOOL_SRC,输入C:/ptc/proeWildfire4/protoolkit
第十步:编译生成dll文件
编译成功!
第十一步:创建protk.dat文件
第十二步:将protk.dat文件放到测试目录
第十三步:修改proe启动目录到测试目录,启动效果,有新菜单哦:lol
运行“安装测试”:victory:
金旋2010建站培训第一课:原来建站如此简单
http://www.hackp.com/wz/1yl.rar
金旋2010建站培训第二课:如何用FTP工具传你的网站到空间
http://www.hackp.com/wz/2ftp.rar
金旋2010建站培训第三课:本机服务器环境搭建之ASP环境
http://www.hackp.com/wz/3asp.rar
金旋2010建站培训第四课:搭建PHP+MYSQL环境
http://www.hackp.com/wz/4pn.rar
金旋2010建站培训第五课:新手快速搭建属于你的网站
http://www.hackp.com/wz/5ks.rar
------------------------------------------------------------------------------------- 动易建站视频教程:
------------------------------------------------------------------------------------- 金旋2010建站培训第六课:流行CMS和Blog程序简介
http://www.hackp.com/wz/6cms.rar
金旋2010建站培训第七课:动易SiteWeaver6.8安装和安全设置
http://www.hackp.com/wz/7dy.rar
金旋2010建站培训第八课:动易SW6.8模板安装和内容标签设置
http://www.hackp.com/wz/8sw.rar
金旋2010建站培训第九课:动易SW6.8采集教程
http://www.hackp.com/wz/9dycj.rar
金旋2010建站培训第十课:内网搭建FTP和HTTP服务
http://www.hackp.com/wz/10ftp.rar
金旋2010建站培训第十一课:如何在XP系统安装IIS环境
http://www.hackp.com/wz/11iis.rar
------------------------------------------------------------------------------------- 新云建站视频教程:
------------------------------------------------------------------------------------- 金旋2010建站培训第十二课:新云4.0的安装和网站安全设置
http://www.hackp.com/wz/12xy.rar
金旋2010建站培训第十三课:新云4.0的模板安装修改
http://www.hackp.com/wz/13xymb.rar
金旋2010建站培训第十四课:新云4.0文章采集详解
http://www.hackp.com/wz/14xycj.rar
------------------------------------------------------------------------------------- dedecms建站视频教程:
------------------------------------------------------------------------------------- 金旋2010建站培训第十五课:dede安装教程
http://www.hackp.com/wz/15dede.rar
金旋2010建站培训第十六课:dede模板安装修改和标记调用
http://www.hackp.com/wz/16ddmb.rar
金旋2010建站培训第十七课:dede详细采集+全站SEO优化方案教程
http://www.hackp.com/wz/17ddcj.rar
------------------------------------------------------------------------------------- phpwind8建站视频教程:
------------------------------------------------------------------------------------- 金旋2010建站培训第十八课:简单几步教你搭建phpwind8.0
http://www.hackp.com/wz/18pw.rar
金旋2010建站培训第十九课:phpwin8风格安装和插件安装
http://www.hackp.com/wz/19p8.rar
金旋2010建站培训第二十课:phpwin8.0社区全能社区手册解读
http://www.hackp.com/jinxuanjiaocheng/42703.html
------------------------------------------------------------------------------------- DZ论坛建站视频教程:
------------------------------------------------------------------------------------- 金旋2010建站培训第二十一课:教你搭建DZX1.5RC
http://www.hackp.com/wz/21dz.rar
金旋2010建站培训第二十二课:教你安装DZX1.5RC模板和插件
http://www.hackp.com/wz/22dz.rar
------------------------------------------------------------------------------------- zblog建站视频教程:
------------------------------------------------------------------------------------- 金旋2010建站培训第二十三课:Zblog建站教程第1课:课程简介
http://www.hackp.com/wz/23zb.rar
金旋2010建站培训第二十四课:zblog安装教程
http://www.hackp.com/wz/24zb.rar
金旋2010建站培训第二十五课:zblog如何更换模板
http://www.hackp.com/wz/25zb.rar
金旋2010建站培训第二十六课:zblog如何配置(初级+高级)
http://www.google.com/ig/api?hl=zh-cn&weather=Beijing
1.1、在Asp.Net TextBox 控件的 OnKeyPress 事件中指定输入键盘码必须为数字:
<asp:TextBox ID="TextBox" runat="server" OnKeyPress="if(((event.keyCode>=48)&&(event.keyCode <=57))||(event.keyCode==46)) {event.returnValue=true;} else{event.returnValue=false;} " MaxLength="15"> </asp:TextBox>
注意:如果不允许输入小数点去掉“event.keyCode==46”这种情况
或者:<asp:TextBox ID="TextBox" runat="server" οnkeyup='value=value.replace(/[^d]/g,'') ' onbeforepaste='clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))' MaxLength="15"> </asp:TextBox>
类似方法一:
if(e.KeyChar!=8!Char.IsDigit(e.KeyChar)e.KeyChar!='.'){ e.Handled = true; } 类似方法二:
if ((e.KeyChar < 48 || e.KeyChar > 57) (e.KeyChar != 8) e.KeyChar!='.'){ e.Handled = true; }
类似方法三:
if (!Char.IsNumber(e.KeyChar) !Char.IsPunctuation(e.KeyChar) !Char.IsControl(e.KeyChar)){ e.Handled = true;}
解释:其中e.KeyChar是键盘输入的键对应的字符,IsDigit函数可以判断是否为0到9的数字,Chr(8)
为退格键,当e.Handled为True时,程序认为该KeyPress事件已经被处理过了,文本框的内容也就不会发生变化
如果文本需要输入小数的话,就要能够输入小数点.,而且小数点只能输入一次
//IsNumber:指定字符串中位于指定位置的字符是否属于数字类别
//IsPunctuation:指定字符串中位于指定位置的字符是否属于标点符号类别
//IsControl:指定字符串中位于指定位置的字符是否属于控制字符类别
注意: 这里是在输入时便限制其他类型的字符被写入 TextBox;
就是说你不输入正确或你输入的不是数字我就不让你做其他任何工作!
霸道吧? 呵呵, 如果你不喜欢这种方式, 下面有几种允许用户先随便输入,