- 博客(41)
- 资源 (44)
- 收藏
- 关注
原创 getBytes 和 getString
<br /> 最近也不知道是吃多了还是喝多了,前两天写一个东西,需要字节级的操作,也涉及到io,为了方便,就直接把string给转成byte[] , 把byte[]给转成strings写到file里。注意:这里的转换不是无条件的。如果不注意,就会出现有的时候结果正确,有的时候结果错误的局面。 <br /> 反思:<br />1 string如果是可读的,那么它是肯定有unicode的byte写法的。所以如果把一个可读的string转成byte[],再转回来是没有问题的。<br />但是如
2010-06-27 21:57:00 1545
转载 【转】C#写文件
<br /><br />导入命名空间:using System.IO;<br /> <br />//实现背景:一个文本框、一个按钮、VS2005<br />方式一:用FileStream<br />//实例化一个保存文件对话框<br /> SaveFileDialog sf = new SaveFileDialog();<br /> //设置文件保存类型<br /> sf.Filter = "txt文件|*.txt|所有文件|*.*";<br
2010-06-22 18:16:00 509
转载 [转]如何有效的使用C#读取文件
<br /> <br />你平时是怎么读取文件的?使用流读取。是的没错,C#给我们提供了非常强大的类库(又一次吹捧了.NET一番),里面封装了几乎所有我们可以想到的和我们没有想到的类,流是读取文件的一般手段,那么你真的会用它读取文件中的数据了么?真的能读完全么?<br />通常我们读取一个文件使用如下的步骤:<br />1、声明并使用File的OpenRead实例化一个文件流对象,就像下面这样<br /> FileStream fs = File.OpenRead(filename);<br
2010-06-22 17:43:00 463
原创 c# 选择文件夹 两种方式
【1】直接用组件:不知道05有没有,反正08有。FolderBrowserDialog直接拖到winform中就可以。代码: private void button2_Click(object sender, EventArgs e) { folderBrowserDialog1.Description = "请选择**文件夹"; //folderBrowserDialog1.ShowNewFolderButton
2010-06-22 17:23:00 1907
转载 【转】内存访问越界
1. 原理分析<br />经常有些新C++程序员问:C++的类的成员个数是不是有限制,为什么我加一个变量后程序就死了?或者说:是不是成员变量的顺序很重要,为什么我两个成员变量顺序换一换程序就不行了?凡此种种之怪现象,往往都是内存访问越界所致。<br /><br />何谓内存访问越界,简单的说,你向系统申请了一块内存,在使用这块内存的时候,超出了你申请的范围。例如,你明明申请的是100字节的空间,但是你由于某种原因写入了120字节,这就是内存访问越界。内存访问越界的后果是:你的写入破坏了本不属于你的空间。<b
2010-06-21 00:09:00 1890 1
转载 字符,字节和编码
摘要:本文介绍了字符与编码的发展过程,相关概念的正确理解。举例说明了一些实际应用中,编码的实现方法。然后,本文讲述了通常对字符与编码的几种误解,由于这些误解而导致乱码产生的原因,以及消除乱码的办法。本文的内容涵盖了“中文问题”,“乱码问题”。 掌握编码问题的关键是正确地理解相关概念,编码所涉及的技术其实是很简单的。因此,阅读本文时需要慢读多想,多思考。 引言 “字符与编码”是一个被经常讨论的话题。即使这样,时常出现的乱码仍然困扰着大家。虽然我们有很多的办法可以用来消除乱码,但我们并不一定理解这些办法的
2010-06-17 20:13:00 470
转载 C#读取二进制文件
<br /> 当想到所有文件都转换为 XML时,确实是一件好事。但是,这并非事实。仍旧还有大量的文件格式不是XML,甚至也不是ASCII。二进制文件仍然在网络中传播,储存在磁盘上,在应用程序之间传递。相比之下,在处理这些问题方面,它们比文本文件显得更有效率些。<br /><br />C#读取二进制文件之比较:在 C 和 C++ 中,读取二进制文件还是很容易的。除了一些开始符(carriage return)和结束符(line feed)的问题,每一个读到C/C++中的文件都是二进制文件。事实上,C/
2010-06-17 20:00:00 1639
转载 (C#) string和byte[]的转换
string类型转成byte[]: byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str );反过来,byte[]转成string: string str = System.Text.Encoding.Default.GetString ( byteArray );其它编码方式的,如System.Text.UTF8Encoding,System.Text.UnicodeEncoding class等;例如:string类型转成ASCI
2010-06-17 19:13:00 669
转载 [转] 堆和栈的区别
<br />【内部有一些图缺失,程序代码也有奇怪代码出现,因转载故未予更正,请观者自清】<br /> <br />一 预备知识—程序的内存分配<br />一个由c/C++编译的程序占用的内存分为以下几个部分<br />1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。<br />2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。<br /
2010-06-15 16:44:00 511
转载 【转】How to call c++ exported method and classes in c#
相对于C++来说,C#是个newcomer,C#提供了一些非常cool的功能,使得我们的工作更加容易。但是,在这个组件横行的年代,如果不懂利用别人写好的代码,就有点落伍了。在C++横行江湖的日子里,留下了很多功能强大的代码,探讨如何在C#的程序中使用这些代码是非常有趣也很有意义的事情,这也是我们今天这篇文章的主题。 C#是managed code,而C++不是,他们之间的几种交互方式可以用下图表示(今天我们只谈managed code 调用 native code): 让我们看上图
2010-06-14 16:59:00 905
原创 解决不能用ping
昨天装了一个usbkey的驱动开发工具,以前xp下的软件,放在win7上,磕磕跘跘的装上了也没在意。也不知道是不是它的原因,晚上用ping的时候,什么,外部命令,赶紧去查环境变量,哇,path里面全变成新装的开发软件的路径了,只好再加上: %JAVA_HOME%/bin;%SystemRoot%/system32;%SystemRoot%;%SystemRoot%/System32/Wbem。 ok了。目前还不知道为什么它能把以前的path给覆盖了,xp下装就没有这个后果啊?
2010-06-12 11:57:00 685
原创 实验setlocale:需要直接指定语言,如 chs
根据前面的那位仁兄讲的,就是【浅谈。。的那篇文章】 他的文章中是用 setlocale(LC_ALL, "zh_CN.UTF-8"); 但是我的电脑上可能不是这个,所以实验时结果不正确,查了下,直接指定语言,可能更好: setlocale(LC_ALL, "chs "); 也就是: wchar_t wstr[] = L"中文"; //必须加setlocale,设置此宽字符对应中文 setlocale(LC_ALL, "chs"); w
2010-06-11 12:52:00 8865
转载 【z】关于char, wchar_t, TCHAR, _T(),L,宏 _T、TEXT,_TEXT、L
char :单字节变量类型,最多表示256个字符, wchar_t :宽字节变量类型,用于表示Unicode字符, 它实际定义在里:typedef unsigned short wchar_t。 为了让编译器识别Unicode字符串,必须以在前面加一个“L”,定义宽字节类型方法如下: wchar_t c = `A' ; wchar_t * p = L"Hello!" ; wchar_t a[] = L"Hello!" ; 其中,宽字节类型每个变量占用2个字节,故上述数组a的
2010-06-11 12:15:00 794
转载 【z】浅谈C中的wprintf和宽字符显示
今天在CSDN的Blog首页看到一篇文章“也谈计算机字符编码 ”,由于前一阵业余翻译了“UTF-8 and Unicode FAQ for Unix/Linux”一文,自己对字符集、编码和Unicode等内容一直保着者很强的兴趣,自然不会放过这样的文章。 作者的文章写得很明白易懂,虽然有一些概念上的细节问题我觉得有商榷之处;作者还给出一个简单的在windows下使用wprintf正确输出字符串“中文”的小例子,我linux下模仿作者给出的示例代码写了如下的示例代码: #include #inc
2010-06-11 12:01:00 646 1
转载 【z】深入 printf / wprintf / console下的unicode output
1. printf 只能提供ANSI/MB 的输出,不支持输出unicode stream. 例如: wchar_t test[]=L"测试1234"; printf("%s",test); 是不会正确输出的 2.wprintf 同样不会提供unicode output, 但是他会把wchar_t的string转为locale的SB/MB字符编码,然后输出 例如: wchar_t test[] = L"测试Test"; wprintf(L"%s",test); 会输出
2010-06-11 11:41:00 796
转载 【c# 】使用 StringBuilder
语言 C# String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类。例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提升
2010-06-11 02:59:00 534
转载 [转] extern "C" 分析2
时常在cpp的代码之中看到这样的代码: #ifdef __cplusplus extern "C" { #endif //一段代码 #ifdef __cplusplus } #endif 这样的代码到底是什么意思呢?首先,__cplusplus是cpp中的自定义宏,那么定义了这个宏的话表示这是一段cpp的代码,也就是说,上面的代码的含义是:如果这是一段cpp的代码,那么加入extern "C
2010-06-10 17:58:00 459
转载 (转)C++中extern "C"含义深层探索
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。 2.从标准头文件说起 某企业曾经给出如下的一道面试题: 面试题 为什么标准头文件都有类似
2010-06-10 17:46:00 378
转载 _T ( "")和 L""
Unicode 的编码形式 默认情况下你的程序是多字符集的,要用Unicode的话要显示的用Unicode的宏 比如L " " _T( " ") TEXT( " ") 在相应的头文件里面这3个家伙是一样的! 象一些函数就只用Unicode版本的 而有些有Ansi/Unicode的典型的有 MessageBoxA()//Ansi MessageBoxW()//Unicode 在你的项目中默认是用多字符集的所以就用了MessageA的版本
2010-06-10 16:52:00 580
原创 平台调用数据类型对应关系
【来自msdn,只为方便查看】 下表列出了在 Win32 API(在 Wtypes.h 中列出)和 C 样式函数中使用的数据类型。许多非托管库包含将这些数据类型作为参数传递并返回值的函数。第三列列出了在托管代码中使用的相应的 .NET Framework 内置值类型或类。某些情况下,您可以用大小相同的类型替换此表中列出的类型 Wtypes.h 中的非托管类型 非托管 C 语言类型
2010-06-10 15:14:00 520
转载 [转] c#调用dll
【使用live writer 的确很方便】 每种编程语言调用DLL的方法都不尽相同,在此只对用C#调用DLL的方法进行介绍。首先,您需要了解什么是托管,什么是非托管。一般可以认为:非托管代码主要是基于win 32平台开发的DLL,activeX的组件,托管代码是基于.net平台开发的。如果您想深入了解托管与非托管的关系与区别,及它们的运行机制,请您自行查找资料,本文件在此不作讨论。 (一) 调用DLL中的非托管函数一般方法 首先,应该在C#语言源程序中声明外部方法,其基本形式是
2010-06-10 13:48:00 408
转载 vs【生成 cmd.exe 时出错】 解决方案
一直被一个问题所困扰,那就是运行CLR—Windows窗体应用程序的时候,即使什么代码也不写,直接编译运行也会报错:“error PRJ0003 : 生成 cmd.exe 时出错” 。 一直在查找资料,看到是因为vs2005的环境变量设置不对,应该如下解决: solution: tools=> Options => Projects and Solutions -> VC++ Directories page then place below rows: $(SystemRoot)/
2010-06-10 10:21:00 656
转载 【转】#define 总结
【总结的兄弟:辛苦了】 1. 定义简单的常数:定义常量,便于修改(切不可在后面加上分号!) #define N 1000 等效于 const int N = 1000; 但略有不同,define只是简单替换,而不是作为一个量来使用. 2. 定义简单的函数:注意多使用括号 define可以像函数那样接受一些参数,如下: #define max(x,y) (x)>(y)?(x):(y); 这个定义就将返回两个数中较大的那个,看到了吗?因为这个“函数”没有类型检查,就好像一个函数模板似的,当然,
2010-06-10 00:09:00 426
转载 【转】typedef struct 用法详解及其在c与c++中的区别
第一篇:typedef struct与struct的区别 1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。 在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。 至于typedef有什么微妙之处,请你接着看下面对几个问题的具体阐述。 2. typedef & 结构的问题 当用下面的代码定义一个结构时,编译器
2010-06-09 23:59:00 588
转载 [转] typedef的四个用途和两个陷阱
用途一: 定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如: char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量; 以下则可行: typedef char* PCHAR; // 一般用大写 PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针 虽然: char *pa, *pb; 也可行,但相对来说没有用type
2010-06-09 23:42:00 432
原创 方便查看 WinDef.h
/**************************************************************************** * * * windef.h -- Basic Windows Type Definitions * *
2010-06-09 23:09:00 2389 1
原创 csdn 的防**是不是有点过了啊 呵呵
好久没直接输入csdn的密码了,刚才试了下live writer,要写密码,写了一个,不正确,就到chrome里,把当前的csdn给注销了,然后登录,试了一个密码,不正确,就提示: 【错误信息:107 请不要**(居然还是敏感词)破解密码,-30分钟内,您无法再次请求登录!】 come on,就是银行网站也给3到5此的机会吧,csdn也太敏感了,一不小心就是半个小时,关键是30前面还有个”-”,不知道是什么意思?时光倒流? 时光穿梭? 还好,这个live writer还能进去,只好改了密码,用这个来登
2010-06-09 22:33:00 494
转载 [c++] 调用约定 calling convention
调用约定(Calling convention)决定以下内容:函数参数的压栈顺序,由调用者还是被调用者把参数弹出栈,以及产生函数修饰名的方法。MFC支持以下调用约定: _cdecl 按从右至左的顺序压参数入栈,由调用者把参数弹出栈。对于“C”函数或者变量,修饰名是在函数名前加下划线。对于“C++”函数,有所不同。 如函数void test(void)的修饰名是_test;对于不属于一个类的“C++”全局函数,修饰名是?test@@ZAXXZ。
2010-06-09 22:03:00 537
转载 【转】#pragma once与 #ifndef的区别
为了避免同一个文件被include多次1 #ifndef方式2 #pragma once方式在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。 方式一: #ifndef __SOMEFILE_H__ #define __SOMEFILE_H__ ... ... // 一些声明语句 #endif 方式二: #pragma once ... ... // 一些声明语句 #ifndef的方式依赖于宏名字不能冲突,这
2010-06-09 21:13:00 419
原创 一笑而过
<br /> 无意间又看见360安全卫士上面又出现 类似被人qj语气的新闻条 [关于金山网盾强行破坏360程序的公告][360起诉金山:破坏360 危害用户 ] 呵呵 前一段被瑞星搞 最近又被金山搞 很少看到一个公司总是这么无奈 还总是在文章中悲诉以博得用户的同情 呵呵 不知道怎么回事 我一点都不同情 哥们 提高技术吧 别人又不是靠蛮力 大家都是靠技术 你也整他啊 呵呵 总的来说 金山 瑞星 这两家估计最近被360逼疯了 明明技术比这freshman牛 就是没他做的好 金山那么多的免费产品
2010-06-08 19:58:00 415
原创 通过华为无线路由器(带猫)多人上网
我的e家版的:【这里只给出我的流程,具体措施可以参考我的资源里面的文档】1. 登陆:192.168.1.12. 高级权限用户名:telecomadmin key: nE7jA%5m3. 最重要的设置:需要注意:不同省份填写的vpi/vci可能不同。我的是通过电信201卡拨号上网。如何得到用户名的前缀:用互联星空或者我的e家的拨号软件用原始号码拨号一次,然后通过事件查看器中的信息得到,界面:好处:你不用每次上都拨号,这样在路由器中设置后,就可以在路由器(adsl)接电和连电话后自动拨号,你用电脑连接即可。
2010-06-05 21:26:00 731 1
转载 您也使用托管C++吗?
<br /><br /> 转向.NET后,手头上往往仍有旧的模块要重用。也许这些模块是Delphi写的,也许是C/C++写的,或者是其它编程语言……为了能把它们移植到.NET下,或者是在.NET中调用,To be or not to be, that is a question。<br /> 在这里,我笔记了几个在工作中遇到的几个场景。不过,这里不包括完全使用C#来重写原来用C++编写的程序这种变态的需求。当你被要求做这种事的时候,请三思而后行……这简直是种非人的折磨。<br />您也使用托管C++吗?
2010-06-02 22:40:00 401 1
转载 [c++转] native 与 clr
看起来只是在C++后面多写了一个“/CLI”,然而其意义却远不止于此,google的c++.moderated版上为此还发起了数星期的讨论,在国内大部分人对C++/CLI还不是很了解的情况下,google上面已然硝烟四起...就像我们作出其它任何选择一样,在选择之前最重要的是先要清楚为什么作出这样或那样的选择——C++/CLI到底提供了哪些优势?为什么我们(标准C++程序员)要选择C++/CLI而不是C#?我们能够得到什么?CLI平台会不会束缚C++的能力?这些都是来自标准C++社区的疑问。从goo
2010-06-02 22:19:00 1018 2
转载 【基础转帖】c++ 怎么输出为dll
在VC++中选择新建一个Win32 Dynamic-Link Library。需要建立一个c/c++ head file和一个c/c++ source file并加入工程。头文件中内容为输出函数的声明,源文件中内容为DllMain函数和输出函数的定义。下面是一个最简单的例子。 <br /><br />//dlldemo.h <br />#ifdef __cplusplus <br />#define EXPORT extern "C" __declspec(dllexport) <br />#else <b
2010-06-02 22:13:00 609 1
转载 【基础转帖】c++ 怎么输出为dll
在VC++中选择新建一个Win32 Dynamic-Link Library。需要建立一个c/c++ head file和一个c/c++ source file并加入工程。头文件中内容为输出函数的声明,源文件中内容为DllMain函数和输出函数的定义。下面是一个最简单的例子。 <br /><br />//dlldemo.h <br />#ifdef __cplusplus <br />#define EXPORT extern "C" __declspec(dllexport) <br />#else <b
2010-06-02 22:13:00 614
转载 [转帖] c++ 与 c# 混合编程 (native C++)
<br /> <br />由于历史原因,很多时候我们的代码并不完全是使用.NET写成的。这时候和以往C++代码的混合编程就显得相当重要了。最近碰到了这样的问题,将方法简要记述如下。<br /><br />【1】 调用简单的C++函数<br /><br /> 要在C#代码中调用C++函数,大体的思路是这样的:首先将C++函数写成DLL形式的库,然后在C#中导入DLL中的函数进行调用。具体的代码类似这样:<br /> C++代码:<br />int StaticElementNumber = 10
2010-06-02 22:03:00 1038 1
转载 【转贴】C++/C# 混合编程 (Mix code C++/C#)
<br /> 最近开始学习 C# WinForm 编程,想通过把过去用 C++/MFC 写的工程移植到 C# 来学习 C# 的开发过程。C#来建造窗口界面比 MFC 轻松许多,但是有很多底层的代码要移植到 C# 实在很麻烦而且没有必要,这部分代码还使用了第三方开发库 WinPcap,于是决定这部分代码依然保持在 C++ 。<br />Visual C++.net 是混合模式的,我们可以创建基于 CLR 的托管代码,也可以创建 Native 的本机代码。<br />在 Solution 里新建一个 Vi
2010-06-02 21:43:00 1008 1
转载 [转贴] C#与C++的混合编程
<br /> C#写界面比较方便,而C++则擅长写算法,所以将两者结合起来将会加快程序的开发速度,并保证程序的质量。但C#与C++的混合编程有很多细节问题需要注意,下面简要列举一些并指出相应的解决办法。<br /> 1. 将本机C++代码(指非托管C++)编译成一个dll,供C#调用,调用方法为 [DllImport(×××.dll)] 。但是这里只能从 DLL 导出函数,不能导出类(还没有测试能否导出变量)。不能导出类是因为本机C++是非托管的,与C#的语言方式不兼容。也就是说,不能
2010-06-02 21:30:00 926 1
原创 [c++] c++ 类中的静态变量初始化
<br />【c++中】<br />.h中:<br />class C<br />{ public:<br /> static int a[2]; //这里是不能初始化的<br />};<br /> <br />对a初始化注意:、<br />1. 如果是放在.h中,需要注意避免重复,可以使用预处理: <br /> #ifndef INIT<br /> #define INIT <br /> int C::a[2]={1,2}; //需要注意1:不要加static;
2010-06-02 20:25:00 3937 2
winpcap初学完全资料(文档、资料、源码)
2011-12-18
Bothunter安装文件和说明文档
2011-07-31
matlab 复杂网络工具箱 (free)
2011-05-08
将web应用从Tomcat5移植到Websphere6.doc
2010-10-16
cxf 开发web services apache 官方文档
2010-05-06
修复金山词霸2005导致资源管理器重启的插件
2010-05-03
把powerdesigner中表名为汉字以及列名为汉字的转为汉语拼音抽头的方法
2010-04-18
winpcap常用的9个实例(vs2008+win7)
2011-12-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人