- 博客(53)
- 资源 (7)
- 收藏
- 关注
原创 c,c++,go语言字符串的演进
而字符串天生就有长度的要求,于是增加了一个字符串结束符,来判断该char数组是否字符串,以及判断长度,结束符之后的内容就被忽略了。golang中的字符串去掉了有争议的'\0'(代码中出现会编译错误),字符串可以表示为[]byte和string,存储上,这两者没多大区别。string中增加了截取,查找等常规操作,string中的字符无法直接修改,每次变动都会引起重新内存分配,方便,但效率较低。C++增加了类的支持,这样可以把长度作为类的成员变量而存在,.zise()反应了数组的真实长度。
2024-06-11 11:57:41
995
1
原创 CMake动态编译protobuff
原文地址:http://www.funlim.com/showthread.php?tid=10CMake对protobuff支持不是很好,想要动态编译.proto文件,不是那么容易的。本文适用CMake3.14.6 protobuf3.9.1 centos7.4网上搜索,CMake提供如下命令支持PB1find_package(Protobuf REQUIRED)2proto...
2019-10-22 16:31:12
4231
原创 使用U盘安装CentOS7.5操作系统
原文地址:http://www.funlim.com/showthread.php?tid=8&pid=8#pid81 下载centos操作系统:2 烧录到U盘试过以下几种方式:1) 大白菜不支持装linux系统,即使加入技术支持群,也不会有人告诉你,纯粹浪费时间。2) 使用UltraISO烧录,要选择【保存磁盘映像】烧录完之后安装,会碰到这个错误War...
2019-07-25 10:36:09
2758
原创 snmp实操经验
原文地址:http://132.232.196.171/editpost.php?pid=2一 准备两台机器,我用的是vmware虚拟机,配置如下二 client安装snmp1 yum -y install net-snmp net-snmp-utils2 关闭selinuxvi /etc/sysconfig/selinux把其中的SELINUX=enforcing 改成SELIN...
2019-04-02 20:34:53
1026
原创 update intellisense...
使用vs的时候,打开工程经常会有这个阶段。intellisense是一种 Microsoft 技术,这种技术通过在光标悬停在函数上时显示类定义和注释,从而让您可以分析源代码。当您在 IDE 中键入函数名时,IntelliSense 还可以完成这些名称。其实我们很多时候会安装va,va比microsoft的intellisense更加智能,完全可以把intellisense禁用掉。禁用方
2013-11-26 17:51:19
886
原创 __interface windows做的另一个龌龊事
__interface father{ void Output();};class father{public: void Output()=0;};以上两种写法是一样的,只是不知道windows搞__interface有什么意义,也不知道这东西内部是怎么实现的,是想让代码变得更加难懂吧
2013-09-24 11:36:14
990
转载 MSSQL 2008 Saving changes is not permitted. THe changes you have made require the following table to
2012-08-05 18:48 by 周国选, 138阅读, 0评论, 收藏, 编辑When I try to update the schema of a table I have received a error below.“Saving changes is not permi
2013-07-17 23:45:28
1191
转载 The database could not be exclusively locked to perform the operation(SQL Server 5030错误解决办法)
SQL Server 5030错误解决办法今天在使用SQL Server时,由于之前创建数据库忘记了设置Collocation,数据库中插入中文字符都是乱码,于是到DataBase的Options中修改Collocation,出现了The database could not be exclusively locked to perform the operation这个错误,无法修改字符集为
2013-07-16 23:43:03
2574
原创 SetProp和GetProp的使用--对windows窗口过程函数的封装
大家都知道,windows创建窗口时,需要传给操作系统一个回调函数,这个回调函数就是窗口处理函数。windows要求该函数是全局或者静态的,这个和C++的封装思想冲突了。往往会在该函数中访问很多图片资源,这样图片资源也要求是全局或者静态的,写起来的代码让人感觉很不爽。如何解决呢?windows提供了另外一组和窗口相关的函数SetProp和GetProp,这样我们可以在程序入口出创建一个
2013-04-06 09:05:39
5470
转载 关于新建项目 添加类系统不会自动创建App_Code文件夹的解决方案
在Web应用程序中不能通过右键项目-〉”添加“-〉”添加ASP.NET文件夹“方式添加 。因为Web应用程序中App_Code就不存在 。 不过可以通过手动的方式创建,添加一个文件夹命名为App_Code就可以了。这样子创建的和在网站中创建的App_Code的在外观上一样的。 先不要高兴,没有这么简单的。 你在App_Code创建类时,会发现没有智能提示。在页面后台引用时,会抱错
2013-04-05 16:52:03
2020
原创 ARGB和PARGB
ARGB和PARGB是针对32位图像而言的,Windows下图像可以是1位、4位、8位、16位、24位以及32位的。32位图像的一个像素 在内存中占四个字节,其排列顺序依次是Alpah,Red,Green,Blue,其中的Alpha表示该像素的透明程度,一般来说我们要进行处理的话需 要的数据时ARGB,也就是R\G\B还没有A进行任何的关联,而PARGB格式的图像,其R\G\B的值已经不是
2013-02-25 17:19:10
2380
原创 一种判断字符串的编码的小技巧(windows C++,perl)
字符串编码是编程的一个最麻烦的,到现在才理解。当你拿到一个字符串,不知为何编码时,可以采用如下小技巧:采用windows提供的一个函数,把原字符串str转成宽字符,需要给出原编码CP_ACP,在debug下查看输出结果pwcsLogTemp,如果是认识的文字,则说明该编码是对的,否则会显示乱码。 MultiByteToWideChar(CP_ACP, 0, str.c_str(), s
2013-02-21 15:23:43
1533
原创 cgi
cgi有几种实现,用C++或者perl。在解析的时候,一般会用"\r\n\r\n"来解析报文头。C++编译器自动把\n转成了\r\n,而perl不会,所以C++的头输出一般这样写 cout而perl需要写成这样print "Content-type:text/html\r\n\r\n" 否则解析就会失败.
2013-02-16 14:53:21
460
原创 dumpbin的几个命令
dumpbin -exports xxxx.dll //查看dll的导出函数dumpbin -imports xxx.exe //查看exe依赖的dll
2013-01-25 00:01:11
463
原创 几个不太准确的C++概念
凡事都有特别,C++也是这样1、函数重载需要入参的类型不一致?成员函数只有常量性不同时是可以被重载的。2、父类可以使用子类的函数。不一定,有可能会被覆盖掉,如果同名或者虚拟函数的话。3、私有函数不能被外部调用。通过虚拟继承,可能会使函数丧失私有特性。见:http://blog.youkuaiyun.com/lnwaycool/article/details/7059870
2013-01-06 11:45:24
419
原创 关于com解释的一段代码,你懂的
#include class father{public: virtual void Output()=0;protected:private:};class son:public father{public:virtual void Output();protected:private:};void son::Output
2013-01-06 10:02:07
731
翻译 软件升级:小胡瓜
原文链接:http://www.feelcomes.com/Show.aspx?id=33正如我在《越小就越快(和越安全)①》中所描述的,我们实现了一种用差异的压缩算法,来使得chrome的升级包明显减小。 我们想要更小的升级包,因为它缩小了软件的漏洞窗口。如果升级程序只有1/10的大小,我们可以在同样的带宽下推10次升级,这样意味着更多的用户能够被更早的保护。第二个好处是,对于连接不
2012-11-23 14:56:47
3543
原创 宏
宏是一个很奇怪的语法#define _0_NUMBER_N( prefix, suffix, n ) prefix##n##suffixcout会输出什么? 0.06//__VA_ARGS__ 是变参#define LOG( format, ... ) printf( format, __VA_ARGS__ ) string str="inweikun";i
2012-10-30 23:55:52
501
原创 在xp下安装iis5.1注意事项
iis5.1默认是不支持asp.net,需要在默认文档中添加Defual.aspx。如果先安装的framework,然后再安装iis,需要执行注册iis,方法如下在CMD中进入目录C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727,运行aspnet_regiis1、aspnet_regiis -ga administrator(adm
2012-10-21 19:32:09
538
原创 监听button窗口鼠标mouse_over的消息
通过setwindowlong 监听button的消息,是不能接收到mouse_over和mouse_leave的消息的,需要通过mouse_move消息来解决,主要代码如下:TRACKMOUSEEVENT tme;case WM_MOUSEMOVE:if (!pBtnRecord->bTracking){tme.cbSize = sizeof(TRACKMOUSEEVENT);
2012-10-19 09:40:19
757
原创 C++各个寄存器的作用
ECX 是计数器(counter), 但是在C++类函数的执行过程中,用来存放this指针。EIP 寄存器存放下一个CPU指令存放的内存地址,当CPU执行完当前的指令后,从EIP寄存器中读取下一条指令的内存地址,然后继续执行。EAX EAX 是"累加器"(accumulator),C++类函数的执行完,用来存放返回值。ESP 寄存器存放当前线程的栈顶指针EBP 寄存器中保存当前线程的栈底指
2012-10-14 22:48:09
3599
原创 无标题栏窗口拖动的实现
原理是给windows发消息,使其认为整个窗口都是非客户端区域1 重载函数: UINT CDragDlg::OnNcHitTest(CPoint point) { CWnd::OnNcHitTest(point); return HTCAPTION; } 2 响应WM_LBUTTONDOWN消息时给wi
2012-10-13 15:20:52
520
原创 some type specifier 类型修饰符
volatile 可变的,易变的,使用这个修饰符,禁止编译器对改变量进行优化,每次都从实际存储的地址读取。mutable 可变的,修饰过的const变量,也能被改变值。
2012-09-06 14:58:39
628
原创 template
template在不同的编译器,支持会不一样,会给代码的可移植性带来很多问题。windows:templatevoid fun(T t){ std::cout};templatevoid fun(int){ std::cout} int i = 1; fun(i); //"int" fun(i); /
2012-09-04 17:46:56
506
原创 回车 want return
carriage 车辆,车架,支架,托架;(机床的)拖板;机器的滑动部分;底座,底盘;承重装置 ,承载器; 所以 回车浅显通俗的翻译成“carriage return”了。在edit control中,有个want return属性,意思:使多行编辑器接收回车键输入并换行。如果不指定该风格,按回车键会选择缺省的命令按钮,这往往会导致对话框的关闭。
2012-08-24 11:21:13
1102
原创 png\jpg图像在windows的显示方法
需要用到GDIPlus1、png的显示1)可以用把png转换成CBitmap进行显示,应该会丢失透明度信息,如下:Gdiplus::Color colorW(255, 255, 255, 255);HBITMAP hbmReturn = NULL; Gdiplus::Bitmap image( wsPath.c_str() );image.GetHBITMAP( color
2012-08-16 15:26:06
3465
原创 windows 7 windows集成身份验证登录未开启的解决方法
C:\Windows\System32\inetsrv>appcmd set config /section:windowsAuthentication /enabled:true参考: http://support.microsoft.com/kb/837139/zh-cn
2012-07-05 22:21:47
2679
原创 inline
inline最好在头文件中申明和定义,否则被外部的调用时,会提示找不到定义。是在编译期实现的函数替换,已经可以做类型检查,支持默认参数值
2012-03-30 10:46:19
450
原创 delete this
delete this 是可行的,并且不会造成内存泄漏,只是使用时要十分小心。1)delete后不能再访问类成员。2)类必须是new出来的。3)delete this不能写在析构函数中,会造成死循环调用。
2012-01-17 14:43:20
599
原创 类的外部调用私有函数的方法
class father1{public:virtual void Output();};class son:public father1{private:void Output();};int main(){son sonInst;father1 &faInst = sonInst;faInst.Output();//father1 *
2011-12-10 16:50:44
2554
原创 C++结构体和类
C++结构体和类几乎一样,都有继承,多态,封装的特性。只是类的默认属性是private,而struct的是public。这说明了C++的struct和C语言的struct是有很大差别的,这个为了兼容C语言的东西,确实设计得比较奇怪。
2011-12-10 15:24:13
483
原创 extern“c”
1、对特定的C++引用函数,去掉重命名规则,用来统一C语言编写的函数的差异。所以,使用extern“c”要注意以下几点:1)不支持函数的重载。2)不支持默认参数赋值。3)不支持bool类型的变量。使用一个未定义的函数,在编译时就报错了,但是如果添加extern前缀,则会到链接的阶段才报错。
2011-12-06 10:38:41
505
原创 C++通过typeid获取类名或者类型名
typeid是C++的一个运算符typeid(int).name() 输出const char*的类型名字,需要支持RTTIchar b[5]={'a', 'b', 'c', 'd', 'e'};int sum1=Total(b, b+4); template R Total(const T* beg, const T* end) {
2011-11-11 16:22:58
18589
uml最基础的九种图,简单易懂
2010-07-22
我对C++的总结,涵盖了整个C++的大部分内容
2010-02-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人