自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 获取文件长度

FILE* pF = fopen("123.txt", "r");if (!pF){printf("open file fail !\n");return 0;}int nres = fseek(pF, 0L, SEEK_END);    -- 设置文

2011-09-26 14:27:52 582

原创 根据class/struct中一个成员的地址,获取该class/struct的地址

使用 winnt.h 下的宏: CONTAINING_RECORD#define CONTAINING_RECORD(address, type, field) ((type *)( \

2011-08-17 17:56:57 631

原创 c++ 不定参数

va_list vlist;va_start(vlist, pszFormat);                   // pszFormat 表示 ... 的前一个参数va_end(vlist);其中:typedef char * va_list

2011-08-15 09:39:19 584

原创 c++ 在win32程序中打开控制台 并重定向输出

#ifdef _DEBUG // Release版禁用 AllocConsole(); //打开控制台窗口以显示调试信息 SetConsoleTitleA("Debug Win: JXEX_GAME"); //设置标题 HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); //获取控制台输出句柄 INT hCrt = _open_osfhandle((INT)hCon, _O_TEXT); //转化为C文件描述符 FIL

2011-03-02 15:57:00 6130 1

原创 C# 启动进程 重定向IO 死锁避免

创建一个cmd进程,执行一个ping命令,代码如下   Process process = new Process(); process.StartInfo.FileName = "cmd.exe"; process.StartInfo.UseShellExecute = false; // 是否使用外壳程序

2010-05-11 10:05:00 6683

原创 c++ 与 lua 简单交互1 (LUA CAPI)

一、第一个例子 Hello World ! #include #include #include "lua.h"#include "lauxlib.h"#include "lualib.h"int main (void){ char buff[256]; int error; lua_State *L = lua_open(); /* opens L

2010-04-22 20:43:00 2388 2

原创 effective c++ 第三版 读书笔记2

5:了解C++默默编写并调用哪些函数 1 当创建空类时,编译器就会为它创建一个copy构造函数、一个copy assignment操作符和一个析构函数 此外,如果没有声明构造函数的话,编译器会为我们生成一个default构造函数  例: class Empty { }; 实际: class Empty { public: Empty() { ..

2010-04-21 23:02:00 501

原创 effective c++ 第三版 读书笔记1

1:视c++为一个语言联邦 可以将c++看做是由四个语言组成的:C, C++, Template C++, STL c++ 高效编程守则视状况而变化,取决于你使用C++的哪一部分 2:尽量使用const, enum, inline 替换#define 参看前一篇文章: 类内部的 static、const、enum 变量 对于单纯常量来说,最好以 const 对象或者 enu

2010-04-18 09:43:00 504

原创 类内部的 static、const、enum 变量

1. 只有当成员变量为static const 时,才可以在声明时直接定义,如下: class X{public: static const m_n = 100;}  当然也可以将声明与定义分开,如下:  class X{public: static const m_n;}  // cpp文件const int X::

2010-03-28 20:15:00 1513

原创 c++ 类成员函数指针

类定义如下: kname.h  class KName { public: typedef void (KName::*FNThreadFun)(); KName(void); ~KName(void); void ShowTest() { std::cout<<"ShowTest"<<std::endl; } void

2010-03-03 14:31:00 471

转载 c++ 标准数据类型

int 类型与操作系统,编译器相关如:win32下为32位,win64下为64位 如果软件有移植需求,请使用固定大小的数据类型 注意:long 的字节数是不随平台改变的,都是4字节  补充: BYTE 1字节 typedef unsigned char BYTE; WORD 2字节 typedef unsigned short WORD; DW

2010-03-02 10:32:00 1511

原创 基于TCP模式的socket编程 简单封装

封装类.h文件: #include #include #define MSG_MAX_LEN (1024 * 1024)class KServerSocket{public: BOOL InitSocket(); BOOL ListenMsg(UINT uPort, UINT uConnMax); BOOL AcceptMsg(OUT SOCKET& cli

2010-02-01 15:19:00 753

转载 详细解析C++虚函数表

转自:Linux联盟   http://www.xxlinux.com/linux/dev/c/2009-01-15/14916.html C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可

2010-01-28 11:17:00 483

原创 关于C++字符 以及编码 宽字符

1、在定义字符型数据时,应尽量使用TCHAR,以便于在转换编码格式时,扩展问题 TCHAR 定义如下(猜测): #ifdef UNICODEtypedef wchar_t TCHAR;#elsetypedef char TCHAR;#endif  在工程定义为UNICODE时,会自动将变量转换成wchar_t型。  2、宽字符赋值:wchar

2010-01-27 12:03:00 684

转载 C#调用非托管DLL

 在合作开发时,C#时常需要调用C++DLL,当传递参数时时常遇到问题,尤其是传递和返回字符串是,现总结一下,分享给大家: VC++中主要字符串类型为:LPSTR,LPCSTR, LPCTSTR, string, CString, LPCWSTR, LPWSTR等, 但转为C#类型却不完全相同。主要有如下几种转换:将string转为IntPtr:IntPtr System.Ru

2010-01-13 15:10:00 844

原创 C++ 编写、 调用 dll 简单例子

C++创建DLL: 1. 创建win32控制台程序, 选择DLL 2. 添加头文件头文件中定义宏  如下:  #ifdef DYNAMICLIBRARY_EXPORTS                                  //该dll

2009-10-28 19:13:00 2701

原创 C# 中调用 C++编写的 dll 的 调试

以下只是针对VS2005,其他版本没试过  前提: 必须有该dll 的c++源码 断点处代码被运行   c#程序调用c++写的dll:   1. 确保工程为debug,而不是release 2. 将该dll设为启动项 3. 设置该dll的属性,property->debugging->debugger type  为 Native

2009-10-28 16:21:00 2921

原创 c# ListView 双缓存 避免闪烁

在控件构造函数前加上以下5行代码: public   class   CustomListView   :   ListView     {             public   CustomListView()             {                     SetStyle(ControlStyles.DoubleBuffer   |              

2009-10-09 14:38:00 2397 1

原创 C# 中 调用 Win API 函数

 1)        [DllImport("user32.dll", EntryPoint = "ShowWindow")]        private static extern bool ShowWindow(IntPtr nClientID, int nCmdShow);   2)         [System.Runtime.InteropServ

2009-10-09 14:23:00 558

原创 C# 属性页 PropertyGrid

using System.Drawing;using System.Text;using System.Windows.Forms;using System.IO;using System.Windows.Forms.Design;using System.Drawing.Design;namespace Quick.Dialog{ public partia

2009-09-29 09:43:00 3335

原创 进度条使用

在使用进度条ProgressBar时,一般使用多线程 和 Timer 相结合。 比如在Form_Load中创建新的线程,用于执行你实际要的操作(比如转换文件)   Thread thread = new Thread(new ThreadStart(progress));thread.Start(); progress()  函数中为操作内容 然后在Ti

2009-09-28 17:30:00 1172

原创 c# lua 简单交互

 c# 与 lua 的交互 比较简单, 一下为例子: c# 文件内容: using System;using System.Collections.Generic;using System.Text;using LuaInterface; // lua 封装库namespace lua_test{ class MyClass

2009-09-28 17:09:00 11008 1

原创 打开控制台窗口以显示调试信息

在程序入口处添加如下代码:#ifdef _DEBUG    AllocConsole(); // 打开控制台窗口以显示调试信息    *stdout = *freopen("CONOUT$", "w", stdout);#endif需要显示数据时 调用 printf() 即可 。。。  ^_^

2008-09-24 16:30:00 1065

原创 设计模式-读书笔记2(第3章)

第3章:装饰者模式装饰者模式:动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的代替方案。(咖啡店)运行时扩展远比编译时期的继承威力大。利用组合(composition)和委托(delegation)可以在运行时具有继承行为的效果。利用继承设计子类的行为,是在编译时静态决定的,而且所有的子类都会继承到相同的行为。然而,如果能够利用组合的做法扩展对象的行为,就可以在运行时动

2008-04-08 23:49:00 456

原创 设计模式-读书笔记1

 第2章:观察者模式观察者模式——在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖他的对象都会收到通知,并自动更新(气象站)00原则:封装变化多用组合,少用继承找出程序中会变化的方面,然后将其和个定不变的方面相分离针对接口编程,不针对实现编程为交互对象之间的松耦合设计而努力第2章: 气象站类图第一章:鸭子类图   using System;

2008-04-08 23:47:00 535

原创 映射模式

 // pDC->SetMapMode(MM_ANISOTROPIC); pDC->SetMapMode(MM_HIMETRIC); CRect rect; GetClientRect(rect);// pDC->SetWindowExt(1000,1000);       //设置比例 有多少个单位// pDC->SetViewportExt(rect.right,-rect.bottom)

2007-09-16 17:03:00 1589 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除