
c++
johnice
这个作者很懒,什么都没留下…
展开
-
映射模式
// 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 · 1623 阅读 · 1 评论 -
获取文件长度
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 · 624 阅读 · 0 评论 -
c++ 不定参数
va_list vlist;va_start(vlist, pszFormat); // pszFormat 表示 ... 的前一个参数va_end(vlist);其中:typedef char * va_list原创 2011-08-15 09:39:19 · 632 阅读 · 0 评论 -
根据class/struct中一个成员的地址,获取该class/struct的地址
使用 winnt.h 下的宏: CONTAINING_RECORD#define CONTAINING_RECORD(address, type, field) ((type *)( \原创 2011-08-17 17:56:57 · 679 阅读 · 0 评论 -
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 · 6325 阅读 · 1 评论 -
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 · 2474 阅读 · 2 评论 -
effective c++ 第三版 读书笔记2
5:了解C++默默编写并调用哪些函数 1 当创建空类时,编译器就会为它创建一个copy构造函数、一个copy assignment操作符和一个析构函数 此外,如果没有声明构造函数的话,编译器会为我们生成一个default构造函数 例: class Empty { }; 实际: class Empty { public: Empty() { ..原创 2010-04-21 23:02:00 · 537 阅读 · 0 评论 -
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 · 542 阅读 · 0 评论 -
类内部的 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 · 1616 阅读 · 0 评论 -
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 · 508 阅读 · 0 评论 -
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 · 1557 阅读 · 0 评论 -
基于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 · 798 阅读 · 0 评论 -
关于C++字符 以及编码 宽字符
1、在定义字符型数据时,应尽量使用TCHAR,以便于在转换编码格式时,扩展问题 TCHAR 定义如下(猜测): #ifdef UNICODEtypedef wchar_t TCHAR;#elsetypedef char TCHAR;#endif 在工程定义为UNICODE时,会自动将变量转换成wchar_t型。 2、宽字符赋值:wchar原创 2010-01-27 12:03:00 · 749 阅读 · 0 评论 -
详细解析C++虚函数表
转自:Linux联盟 http://www.xxlinux.com/linux/dev/c/2009-01-15/14916.html C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可转载 2010-01-28 11:17:00 · 513 阅读 · 0 评论 -
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 · 883 阅读 · 0 评论 -
打开控制台窗口以显示调试信息
在程序入口处添加如下代码:#ifdef _DEBUG AllocConsole(); // 打开控制台窗口以显示调试信息 *stdout = *freopen("CONOUT$", "w", stdout);#endif需要显示数据时 调用 printf() 即可 。。。 ^_^原创 2008-09-24 16:30:00 · 1110 阅读 · 0 评论 -
C++ 编写、 调用 dll 简单例子
C++创建DLL: 1. 创建win32控制台程序, 选择DLL 2. 添加头文件头文件中定义宏 如下: #ifdef DYNAMICLIBRARY_EXPORTS //该dll原创 2009-10-28 19:13:00 · 2766 阅读 · 0 评论