
开发细节记录
syflyhua
这个作者很懒,什么都没留下…
展开
-
ZeroMemory memset ={0}的区别和探究
1, 区别ZeroMemory和memset的区别: 1、ZeroMemory是微软的SDK提供的,memset是属于CRun-time Library提供的。因此ZeroMemory只能用于Windows系统,而memset还可用于其他系统。 2、ZeroMemory是一个宏,只是用于把一段内存的内容置零,内部其实是用 memset实现的,而memset除了对内存进行转载 2013-05-28 14:27:19 · 766 阅读 · 0 评论 -
从com聚合中 举一个 例子
class A{public:virtual void fun1() = 0;virtual void fun2() = 0;virtual void fun3() = 0;};class B{public:virtual void funB1() = 0;virtual void funB2() = 0;virtual void f原创 2013-06-04 23:35:18 · 752 阅读 · 0 评论 -
strformatbytesize 用户空间的内存
#include #include #include #include #pragma comment(lib, "Shlwapi.lib");int _tmain(int argc, _TCHAR* argv[]){ SYSTEM_INFO si; ZeroMemory(&si, sizeof(si)); GetSystemInfo(&si); TCHAR szPage原创 2013-06-14 14:59:11 · 3009 阅读 · 0 评论 -
静态 局部 全局变量 反汇编
#include #include #include int g_ivarone = 1;int g_ivartwo = 2;int g_ivarthree = 3;static int s_ivarfour = 4;int _tmain(int agrc, _TCHAR* agrv[]){00415ED0 push ebp 00415ED1 mov原创 2013-06-14 15:17:54 · 1181 阅读 · 0 评论 -
为了方便看日志,利用ciriticalsection将日志同步起来。
void PrintStr(LPCTSTR lpstr){ DWORD len = _tcslen(lpstr); DWORD rlen; EnterCriticalSection(&g_srcritical); WriteFile(g_hConsoleOut, lpstr, len, &rlen, NULL); WriteFile(g_hConsoleOut, "\r\n", 2,原创 2013-06-06 17:29:42 · 697 阅读 · 0 评论 -
createfile
HANDLE CreateFile(LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDispostion , DWORD dwFlagsAndAttributes, HANDLE hTemp原创 2013-06-06 15:15:28 · 760 阅读 · 0 评论 -
使用readfile, getline的实现
BOOL GetLine(HANDLE hFile, LPTSTR lpstr, DWORD size){ DWORD numRead; DWORD index = 0; DWORD newline = 0; TCHAR tc; while(index < size - 1) { if(!ReadFile(hFile, &tc, 1, &numRead, NULL) || nu原创 2013-06-06 16:14:28 · 1381 阅读 · 0 评论 -
GetWindowThreadProcessId
DWORD GetWindowThreadProcessId(HWND hWnd, LPDWORD lpdwProcessId );返回创建hWnd窗口的线程或者进程的 标识id。原创 2013-06-07 11:05:13 · 1244 阅读 · 0 评论 -
广度 深度 遍历文件夹
#include #include #include #include #include #include #pragma comment(lib, "Shlwapi.lib")#include using namespace std;#ifdef _UNICODE #define tstring wstring#else#define tstring string#原创 2013-05-31 20:14:31 · 773 阅读 · 0 评论 -
CPaintDC CClientDC CWindowDC CMemoryDC wtl中关于hdc的封装事实。摘录如下:
class CPaintDC : public CDC{public:// Data members HWND m_hWnd; PAINTSTRUCT m_ps;// Constructor/destructor CPaintDC(HWND hWnd) { ATLASSERT(::IsWindow(hWnd)); m_hWnd = hWnd; m_hDC = ::Be原创 2013-06-03 16:32:29 · 1463 阅读 · 0 评论 -
stl container 比较。太大了。分开列了。
list, deque,vector, map , set ,array,string 可以放在一起比较。 顺序容器:list::begindeque::beginvector::beginlist::cbegindeque::cbeginvector::cbeginlist::cenddeque::cendvector::c原创 2013-05-31 14:50:57 · 1301 阅读 · 0 评论 -
每一个结构都记得初始化。
OVERLAPPED overlap;memset(&overlap, 0, sizeof(overlap));overlap.Offset = nNumBegin;OVERLAPPED overlapped[QUERYSIZE];HANDLE hEvents[QUERYSIZE];memset(overlapped, 0, QUERYSIZE*sizeof(OVE原创 2013-05-28 14:01:55 · 506 阅读 · 0 评论 -
SYSTEM_INFO
typedef struct _SYSTEM_INFO {DWORD dwOemId;struct { WORD wProcessorArchitecture; WORD wReserved;}DWORD dwPageSize;LPVOID lpMinimumApplicationAddress;LPVOID lpMaximumApplicationAd原创 2013-05-29 14:33:07 · 1126 阅读 · 0 评论 -
htonl htons
htonlu_long htonl(u_long hostlong);将主机的无符号长整形数转换成网络字节顺序。big-endianhtonsu_short htons(u_short hostshort);将主机的无符号短整形数转换成网络字节顺序。big-endian原创 2013-05-29 14:05:18 · 596 阅读 · 0 评论 -
UNREFERENCED_PARAMETER
作用:告诉编译器,已经使用了该变量,不必检测警告!在VC编译器下,如果您用最高级别进行编译,编译器就会很苛刻地指出您的非常细小的警告。当你声明了一个变量,而没有使用时,编译器就会报警告:“warning C4100: ''XXXX'' : unreferenced formal parameter.” 所以,为了让编译器不必检测你的警告,就使用UNREFERENCED_PA转载 2013-05-29 14:35:42 · 644 阅读 · 0 评论 -
标准c内存函数
calloc 语法: #include void *calloc( size_t num, size_t size );功能: 函数返回一个指向num 数组空间,每一数组元素的大小为size。如果错误发生返回NULL。 calloc则将初始化这部分的内存,设置为0(其中alloca(和calloc不一样)是向栈申请内存,因此无需释放原创 2013-05-29 14:39:54 · 586 阅读 · 0 评论 -
AddressFamily
AddressFamily: AF_UNSPEC = 0 '/* unspecified */ AF_UNIX = 1 '/* local to host (pipes, portals) */ AF_INET = 2 '/* internetwork: UDP, TCP, etc. */ AF_原创 2013-05-30 09:55:11 · 4557 阅读 · 0 评论 -
局部变量没有初始化
bResult = GetQueuedCompletionStatus( ghCompletionPort, &dwNumRead, (LPDWORD)pKey, --这个结构体指针没有初始化,导致崩溃。 &lpOverlapped, I原创 2013-05-30 18:22:39 · 960 阅读 · 0 评论 -
error C2039: “S_addr” : 不是“in_addr”的成员
struct in_addr { union { struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b; struct { u_short s_w1,s_w2; } S_un_w; u_long S_addr; } S_un原创 2013-05-30 14:43:41 · 2343 阅读 · 0 评论 -
dumpbin lib.exe 从dll中导出lib文件
1. 生成def的dll.2. dumpbin /exports testdll.dll > testdll.def 修改def文件,列出导出函数表。3.lib.exe /def:testdll.def 生成Lib文件。4.在工程里静态链接库文件,查看编译错误,再次修改def文件。5.再次生成Lib文件。6.编译正确。。。。原创 2013-06-04 10:06:16 · 1329 阅读 · 0 评论