- 博客(22)
- 资源 (292)
- 收藏
- 关注
转载 Visual C# 常见问题目录
Visual C# 常见问题目录1. 基类及派生类能否导出至COM?2. 如何将一个类型库以程序集的方式导入?3. P/Invoke(平台调用)本地函数的最好方法是什么,该本地函数以TCHAR*类型数组为输入参数,返回该数组的第一个元素?4. const和static readonly的区别?5. 隐式类型VAR和匿名类型的区别?6. 对象和集合初始值设
2013-12-27 10:07:21 597
转载 C#精确计时
精确计时主要有以下几种方式1 调用WIN API中的GetTickCount [DllImport("kernel32")]static extern uint GetTickCount(); 从操作系统启动到现在所经过的毫秒数,精度为1毫秒,经简单测试发现其实误差在大约在15ms左右缺点:返回值是uint,最大值是2的32次方,因此如果服务器连续开机大约49天以后,该方
2013-12-26 13:15:38 2401
原创 一个可以复用的memory buffer 的设计和实现
本文意图在于设计一个高效的内存缓冲,可以复用,使用与高效日志系统,支持多线程并且不使用用户级别的锁即传说中的无锁编程。基本想法:方法1:1、使用默认缓存5M2、默认线程使用的内存为128K,即最多默认支持40个线程3、初始化申请一块5M内存,然后进行分割,线程使用的定义为GROUP,没一条日志使用的为ITEM4、运行过程中进行动态管理,内存用完后申请新的空间,一次为5M
2013-12-25 16:37:01 897
原创 常用的Interlocked系列函数
因此在多线程环境中对一个变量进行读写时,我们需要有一种方法能够保证对一个值的递增操作是原子操作——即不可打断性,一个线程在执行原子操作时,其它线程必须等待它完成之后才能开始执行该原子操作。这种涉及到硬件的操作会不会很复杂了,幸运的是,Windows系统为我们提供了一些以Interlocked开头的函数来完成这一任务(下文将这些函数称为Interlocked系列函数)。下面列出一些常用的Inte
2013-12-23 14:07:31 1050
转载 采用C++的ACE库实现的一个通用的C/S架构通信程序(最终版)
ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework),在其中实现了许多用于并发通信软件的核心模式。ACE提供了一组丰富的可复用C++ Wrapper Facade(包装外观)和框架组件,可跨越多种平台完成通用的通信软件任务,其中包括:事件多路分离和事件处理器分派、信号处理、服务初始化、进程间
2013-12-20 17:24:01 1238
转载 ACE通用network框架
认真学习了《The ACE Programmers Guide》中7.6 Using the Acceptor-Connector Framework章节,整理了通用服务端和客户端框架,首次在网络上共享学习成果,希望对大家有所帮助。 不爱废话,开始我们的编码旅程。补充一句,学习ACE不得不研读一下《ACE自适配通信环境中文技术文档-中篇:ACE程序员教程》这份文档,作者和马维达的翻译
2013-12-19 10:54:56 1401
转载 ACE_Select_Reactor 一 ——入门
ACE_Select_Reactor 1 ——入门 ACE Reactor 框架实现了Reactor模式,允许事件驱动的应用对源自许多不同事件源的事件做出反映,比如IO句柄,定时器,以及信号,应用重新定义框架所定义的挂钩方法。框架随机对其进行分派来处理事件,Reactor负责:(1)检查多路分离器来自各种事件源的、不同类型的连接和数据事件,(2)将这些事件分派给应用所定义的处理器,由
2013-12-19 10:19:53 2090
转载 ACE_Task
1ACE_Task概述ACE_Task是ACE中的任务或主动对象“处理结构”的基类。ACE使用此类来实现主动对象模式。所有希望成为“主动对象”的对象都必须由此类派生。同时可将它看作是更高级的、更为面向对象的线程。ACE_Task处理的是对象,因此更有利于构造OO程序,产生更好的OO软件,而且,它还包括了一种用于与其他任务通信的易于使用的机制。ACE_Task
2013-12-18 13:43:42 805
转载 P2P 之 UDP穿透NAT的原理与实现
论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东西产生(源代码)。呵呵,在这里我就用自己实现的一个源代码来说明UDP穿越NAT的原理。首先先介绍一些基本概念: NAT(Network Address Translators),网络地址转换:网络地址转换是在IP地址日益缺乏的情况下产生的,它的主要目的就是为了能够地址重用。NAT分为两大类,基本的NAT
2013-12-17 14:07:05 821
转载 【古语】之豁达
得之坦然:获得东西要正大光明,不愧对他人,不损人利己。失之淡然:物有得必有失,不要为失去东西耿耿于怀。以上两者又可称为“不可患得患失”,对待得失要有平常心,要减少对外物太过执着的欲望。争其必然:是指我有必然之理才可以去坚持,也就是说可以使我争论坚持的唯有真理。不要去强辩,不要无理争三分。为人应堂堂正正,有理则维护,无理则承认,虚心听取道理。顺其自然:是说万物自有其理,世事不可强求,很多时候
2013-12-17 11:02:05 842
转载 [原创]一个简单的使用C++在运行时获取调用堆栈的类
最近一直在整理过去写过的东西,希望能够达到拿到哪里都可以直接用,不需要配置什么,动机主要是最近自己写了一些小东西,发现很多东西我都是在做重复劳动,比如说string_shim、C++ string和String^的桥接等等。为了避免这些没有必要的重复劳动,所以就动手整理啦。 我给它起了个名字叫dbsoft。感觉小写还是比较和谐的,嘿嘿。目前已经整理了不少公共组件,透露下:
2013-12-16 11:31:30 783
转载 Windows下获取Dump文件以及进程下各线程调用栈的方法总结
1. Dump文件的用途Dump文件, 主要用于诊断一个进程的运行状态,尤其是碰到崩溃(Crash)或者挂起(hang)不响应时,需要分析它的工作状态. 除了平时常见的attach到这个进程, 分析Dump文件就成了一个重要的手段了.相信一些做软件维护和支持的工程师在这方面深有体会, 比如某天某时,客户说, 呀, 糟糕, 服务器进程挂掉了, 怎么回事? 然后,看看了日志文件,也没有什
2013-12-16 11:24:48 3041
转载 再谈windows下几个重要的DOS命令和命令组合,工作中常用
以下是我常用的一些命令或命令组合, 以后会陆续补充。 1. dir 用于查找文件或者目录:例如: D:\asa120>dir /L /S dbole*.dll2012-03-28 11:13 1,028,472 dboledb12.dll2012-03-28 11:13 383,352 dboledba12
2013-12-16 11:18:00 1313
转载 研发周报:暴露程序员身份的8个行为
http://www.csdn.net/article/2013-12-13/2817802-software-weekly-report摘要:本周看点:暴露程序员身份的8个行为、Twitter:收发一条推文的背后、敏捷开发的6个实战经验、TIOBE 2013年12月编程语言排行榜:Transact-SQL冲刺年度语言、维护代码库的五个精华实践。在上一周中,研发频道
2013-12-16 11:09:20 1611
转载 循环原子锁
原文:http://www.cppblog.com/woaidongmao/archive/2008/04/16/47229.htmlInterlockedExchange和InterlockedExchangePointer能够以原子操作方式用第二个参数中传递的值来取代第一个参数中传递的当前值。如果是32位应用程序,两个函数都能用另一个32位值取代一个32位值。但是,如果是个64位应用程
2013-12-12 11:29:45 827
原创 如何快速创建大文件
有时候平时做试验,需要一些指定大小的文件来测试,还要到处去找,有时候找到合适大小的文件还挺困难,现在微软提供了一个命令fsutil.exe,可以自己创建指定大小的文件。语法:fsutil file [createnew] PathName length范例:fsutil file createnew d:\aa.txt 4096就可以在D盘下创建一个名字为aa.tx
2013-12-11 16:52:59 2584
原创 关于CreateProcess
1. 使用例子:使用ie打开指定的网页。注意第二个参数是 可执行文件+命令行参数 [cpp] view plaincopyprint?#include "stdafx.h" #include #include int main(int argc, char* argv[]) { STARTUPINFO si
2013-12-11 13:54:04 1344
转载 Windows 上静态编译 Libevent 2.0.10 并实现一个简单 HTTP 服务器
本文介绍了如何在 Windows 操作系统中,利用微软 Visual Studio 2005 编译生成 Libevent 2.0.10 静态链接库,并利用 Libevent 静态链接库,实现一个简单的 HTTP Web服务器程序:httpd.exe。 假设 Visual Studio 2005 的安装路径为“D:\Program Files\Microsoft Visual St
2013-12-09 19:11:13 1027
转载 Linux系统调用--getrlimit()与setrlimit()函数详解
功能描述:获取或设定资源使用限制。每种资源都有相关的软硬限制,软限制是内核强加给相应资源的限制值,硬限制是软限制的最大值。非授权调用进程只可以将其软限制指定为0~硬限制范围中的某个值,同时能不可逆转地降低其硬限制。授权进程可以任意改变其软硬限制。RLIM_INFINITY的值表示不对资源限制。用法:#include int getrlimit(int resource,
2013-12-09 12:36:59 849
转载 gcc/g++编译
GCC 有超过100个的编译选项可用. 这些选项中的许多你可能永远都不会用到, 但一些主要的选项将会频繁用到. 很多的 GCC 选项包括一个以上的字符. 因此你必须为每个选项指定各自的连字符, 并且就象大多数 Linux 命令一样你不能在一个单独的连字符后跟一组选项. 例如, 下面的两个命令是不同的:gcc -p -g test.cgcc -pg test.c第一条命令告诉 G
2013-12-09 10:44:52 634
转载 iocp transfer
download: http://download.csdn.net/download/piggyxp/3748595http://download.csdn.net/download/piggyxp/3739575 这份代码是我博客里的文章《完成端口详解 - 手把手教你玩转网络编程系列之三》的配套代码里面的代码包括VC++2008/VC++2010编写的完成端口服务器端的代码
2013-12-07 11:38:56 839
vc(2015sdk)_redist.x64
2018-11-27
python3.6.7-and-win7kb
2018-11-26
开源的FreeNOS
2016-12-09
IPMIView_2.9.25
2016-08-19
windows多线程编程技术与实例
2016-07-18
C++调用MATLAB[vs2010]
2016-05-18
PVS-Studio 6.00官方版(注册版)
2016-05-05
openCL编程指导源代码
2016-04-18
学习 FPGA 书籍分享
2016-04-12
Cocos2dx 源码与实例
2016-03-17
zlib 封装简单接口使用
2015-12-23
CrashRpt 源码
2015-10-12
基于FFmpeg的AVFilter例子
2014-06-09
libevent源码和一个小例子
2014-06-04
OpenCL CUDA 例子
2014-04-18
Google_Android开发入门与实践
2014-02-26
pstools远程控制工具
2014-01-24
一个c++buffer的设计和实现
2013-12-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人