- 博客(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 613
原创 根据class/struct中一个成员的地址,获取该class/struct的地址
使用 winnt.h 下的宏: CONTAINING_RECORD#define CONTAINING_RECORD(address, type, field) ((type *)( \
2011-08-17 17:56:57 663
原创 c++ 不定参数
va_list vlist;va_start(vlist, pszFormat); // pszFormat 表示 ... 的前一个参数va_end(vlist);其中:typedef char * va_list
2011-08-15 09:39:19 618
原创 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 6282 1
原创 C# 启动进程 重定向IO 死锁避免
创建一个cmd进程,执行一个ping命令,代码如下 Process process = new Process(); process.StartInfo.FileName = "cmd.exe"; process.StartInfo.UseShellExecute = false; // 是否使用外壳程序
2010-05-11 10:05:00 6770
原创 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 2449 2
原创 effective c++ 第三版 读书笔记2
5:了解C++默默编写并调用哪些函数 1 当创建空类时,编译器就会为它创建一个copy构造函数、一个copy assignment操作符和一个析构函数 此外,如果没有声明构造函数的话,编译器会为我们生成一个default构造函数 例: class Empty { }; 实际: class Empty { public: Empty() { ..
2010-04-21 23:02:00 527
原创 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 524
原创 类内部的 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 1587
原创 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 494
转载 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 1544
原创 基于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 783
转载 详细解析C++虚函数表
转自:Linux联盟 http://www.xxlinux.com/linux/dev/c/2009-01-15/14916.html C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可
2010-01-28 11:17:00 503
原创 关于C++字符 以及编码 宽字符
1、在定义字符型数据时,应尽量使用TCHAR,以便于在转换编码格式时,扩展问题 TCHAR 定义如下(猜测): #ifdef UNICODEtypedef wchar_t TCHAR;#elsetypedef char TCHAR;#endif 在工程定义为UNICODE时,会自动将变量转换成wchar_t型。 2、宽字符赋值:wchar
2010-01-27 12:03:00 730
转载 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 867
原创 C++ 编写、 调用 dll 简单例子
C++创建DLL: 1. 创建win32控制台程序, 选择DLL 2. 添加头文件头文件中定义宏 如下: #ifdef DYNAMICLIBRARY_EXPORTS //该dll
2009-10-28 19:13:00 2750
原创 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 2960
原创 c# ListView 双缓存 避免闪烁
在控件构造函数前加上以下5行代码: public class CustomListView : ListView { public CustomListView() { SetStyle(ControlStyles.DoubleBuffer |
2009-10-09 14:38:00 2451 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 586
原创 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 3388
原创 进度条使用
在使用进度条ProgressBar时,一般使用多线程 和 Timer 相结合。 比如在Form_Load中创建新的线程,用于执行你实际要的操作(比如转换文件) Thread thread = new Thread(new ThreadStart(progress));thread.Start(); progress() 函数中为操作内容 然后在Ti
2009-09-28 17:30:00 1191
原创 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 11049 1
原创 打开控制台窗口以显示调试信息
在程序入口处添加如下代码:#ifdef _DEBUG AllocConsole(); // 打开控制台窗口以显示调试信息 *stdout = *freopen("CONOUT$", "w", stdout);#endif需要显示数据时 调用 printf() 即可 。。。 ^_^
2008-09-24 16:30:00 1092
原创 设计模式-读书笔记2(第3章)
第3章:装饰者模式装饰者模式:动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的代替方案。(咖啡店)运行时扩展远比编译时期的继承威力大。利用组合(composition)和委托(delegation)可以在运行时具有继承行为的效果。利用继承设计子类的行为,是在编译时静态决定的,而且所有的子类都会继承到相同的行为。然而,如果能够利用组合的做法扩展对象的行为,就可以在运行时动
2008-04-08 23:49:00 478
原创 设计模式-读书笔记1
第2章:观察者模式观察者模式——在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖他的对象都会收到通知,并自动更新(气象站)00原则:封装变化多用组合,少用继承找出程序中会变化的方面,然后将其和个定不变的方面相分离针对接口编程,不针对实现编程为交互对象之间的松耦合设计而努力第2章: 气象站类图第一章:鸭子类图 using System;
2008-04-08 23:47:00 553
原创 映射模式
// 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 1614 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人