学习资料
文章平均质量分 70
dylanlrp
这个作者很懒,什么都没留下…
展开
-
DLL编写教程
DLL编写教程半年不能上网,最近网络终于通了,终于可以更新博客了,写点什么呢?决定最近写一个编程技术系列,其内容是一些通用的编程技术。例如DLL,COM,Socket,多线程等等。这些技术的特点就是使用广泛,但是误解很多;网上教程很多,但是几乎没有什么优质良品。我以近几个月来的编程经验发现,很有必要好好的总结一下这些编程技术了。一来对自己是总结提高,二来可以方便光顾我博客的朋友。好了,废话转载 2010-05-27 11:08:00 · 269 阅读 · 0 评论 -
线程局部存储(TLS)
一个进程的所有线程都共享其虚拟地址空间。 对于运行该函数的每个线程来说,一个函数的本地变量是唯一的。但是,静态(static)和全局(global)变量被进程中的所有线程共享。线程本地存储区 (TLS),使用全局(global)索引,对于每个进程可以访问的线程 可以提供唯一的数据。一个线程分配索引,其他线程可以用于检索与索引相关联的唯一数据。 常量 TLS_MINIMUM_AVAILABLE 定义了每个进程中可用的TLS索引的最小值。对于所有系统这个最小值保证至少是64。每个进程的索引原创 2010-10-19 08:38:00 · 417 阅读 · 0 评论 -
C++多线程(三)
<br />多线程同步之Critical Sections(功能与Mutex相同,保证某一时刻只有一个线程能够访问共享资源,但是不是内核对象,所以访问速度要比Mutex快,但是增没有等待超时的功能,所以有可能会导致死锁,使用时可以根据实际的情况选择其一)<br />一 Critical Sections<br />1) 因为Critical Sections不是内核对象,所以只能用来统一进程内线程间的同步,不能用来多个不同进程间的线程的同步。<br />2) 如果在Critical Sections中间突然转载 2010-09-30 11:23:00 · 418 阅读 · 0 评论 -
C++多线程(四)
<br />多线程同步之WIN API互锁函数 (可以避免使用CriticalSection或Mutex)<br /><br />一 互锁函数<br /><br /> 互锁函数的家族十分的庞大,可以查看msdn(http://msdn2.microsoft.com/en-us/library/ms686360.aspx)以InterLocked开始的函数都是户数函数。使用互锁函数的优点是:他的速度要比其他的CriticalSection,Mutex,Event,Semaphore快很多。<br /原创 2010-09-29 16:16:00 · 439 阅读 · 0 评论 -
C++多线程(二)
<br />C/C++ Runtime 多线程函数<br /><br />一 简单实例<br />主线程创建2个线程t1和t2,创建时2个线程就被挂起,后来调用ResumeThread恢复2个线程,使其开始执行,调用WaitForSingleObject等待2个线程执行完,然后推出主线程即结束进程。<br /> <br />/* file Main.cpp * * This program is an adaptation of the code Rex Jaeschke showed in原创 2010-09-28 20:47:00 · 576 阅读 · 0 评论 -
C++多线程(一)
WIN 多线程API一 简单实例比较简单的代码,创建10个线程,其中使第4个线程在一创建就挂起,等到其他的线程执行的差不多的时候再使第4个线程恢复执行。#include #include #include #define THREAD_NUM 10 DWORD WINAPI PrintThreads (LPVOID); int main () { HANDLE hThread[THREAD_NUM]; DWORD dwThreadID[THREA转载 2010-09-27 09:13:00 · 370 阅读 · 0 评论 -
学习Dll(五)--example from MSDN
<br />Dll头文件<br /> <br />// MathFuncsDll.h namespace MathFuncs { class MyMathFuncs { public: // Returns a + b static __declspec(dllexport) double Add(double a, double b); // Returns a - b static __de原创 2010-09-21 16:09:00 · 323 阅读 · 0 评论 -
函数形参中的数组传递
数组形参可声明为数组的引用,如:function( int (&arr) [10] )如果形参是数组的引用,编译器不会将数组实参转化为指针,而是传递数组的引用本身。数组大小成为形参和实参类型的一部分,编译器会检查实参大小和形参大小是否匹配。例子:函数功能,得到当前时间,写到字符数组。#include #include using namespace std; void GetTimeStr(char (×tr)[32] ) { time_t t = time(0); strftim原创 2010-09-23 16:48:00 · 2356 阅读 · 0 评论 -
Dll学习(四)--显式调用
简单Dll(无输出变量和函数)的加载1、建立一个简单的Dll#include #include BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, void* lpReserved) { HANDLE g_hModule; switch(dwReason) { case DLL_PROCESS_ATTACH: cout原创 2010-09-20 21:13:00 · 590 阅读 · 0 评论 -
Dll学习(三)--隐式链接(例子)
1、创建Dll,无头文件。#include using namespace std; extern "C" __declspec(dllexport) void FuncInDll(void) { cout原创 2010-09-16 21:35:00 · 508 阅读 · 0 评论 -
Dll学习(二)--隐式链接(例子 from 核心编程)
如果Dll模块至少导出了一个函数或变量,则链接程序同时生成一个单独的lib文件。创建DLL模块1、首先建立一个头文件,包含所要导出的变量(类型和名字)和函数(原型和名字)。 该头文件还必须定义与被导出的函数以及变量一起使用的任何符号和数据结构。2、头文件中,在变量和函数前加上__declspec(dllexport)关键字。也可以定义宏代替关键字。#ifdef MYLIBAPI //在Dll源代码文件中,include该头文件之前,必须定义该宏 //定义为extern "C" __declsp原创 2010-09-16 09:46:00 · 432 阅读 · 0 评论 -
Dll学习(一)--DllMain函数
1、首先看一下一个空的Dll。 vc6.0环境,new-->project-->Win32 Dynamic-Link Library-->A simple Dll project// SimpleDll.cpp : Defines the entry point for the DLL application. // #include "stdafx.h" BOOL APIENTRY DllMain( HANDLE hModule,原创 2010-09-15 21:07:00 · 694 阅读 · 0 评论 -
C++中的数据类型转换方法总结
C++中的数据类型转换方法总结摘要:本文总结了C/C++中的多种数据类型转换方法,并比较了各自的优劣。给出了推荐的使用建议。从int到char*,或者反过来从char*到int,在C/C++中到底有多少种转换方法呢?符合标准的大概有四种。即C数据转换函数族、sprintf/snprintf/sscanf函数族、字符串流std::stringstream、std::strsteam。不符合标转载 2010-05-27 11:24:00 · 479 阅读 · 0 评论 -
Socket编程指南及示例程序
例子代码就在我的博客中,包括六个UDP和TCP发送接受的cpp文件,一个基于MFC的局域网聊天小工具工程,和此小工具的所有运行时库、资源和执行程序。代码的压缩包位置是http://www.blogjava.net/Files/wxb_nudt/socket_src.rar。1 前言在一些常用的编程技术中,Socket网络编程可以说是最简单的一种。而且Socket编程需要的基转载 2010-05-27 11:15:00 · 324 阅读 · 0 评论 -
网站渗透的一些经验
1.无论什么站,无论什么语言,我要渗透,第一件事就是扫目录,最好一下扫出个上传点,直接上传shell,诸位不要笑,有时候你花很久搞一个站,最后发现有个现成的上传点,而且很容易猜到,不过这种情况发生在asp居多! 2.asp(aspx) MSSQL先考虑注入,一般的注入都有DBowner权限可以直接写shell;如果写不了,或者web与数据库分离,那就猜数据,从后台下手了,后台可以上传或者改配置文转载 2012-10-19 19:48:22 · 807 阅读 · 0 评论