C++
蓝色水
一个在海边拾贝壳的大男孩
2002年毕业于上海市交通大学上中路校区,曾参与微软ALL-IN-ONE-CODE FRAMEWORK项目并对WPF,C++,C#,Winform的MSDN论坛支持多年,专注于net的技术体系十多年,对DDD领域设计net的部署实施有独到见解和经验,并对JAVA的架构体系的数据持久化,AOP,分布式事务,单点登录,多业态权限设计,分布式日志系统有实际项目运用案例,致力于传统行业的HR,OA,费控,业绩,移动平台化整合,ERP改造以及云部署。
展开
-
.NET程序集强命名删除与再签名技术 源代码剖析
如果你想去除一个程序集的强签名(strong name),目前为止可以有两个途径1 反编译为IL代码,删除签名部分,再编译为程序集2 应用Re-Sign程序,直接对一个程序集再签名 生成和读取强命名先来看,如何生成.NET的签名文件,调用命令SN传入参数。下面的代码读取该文件,FileStream keyPairFile =转载 2016-05-09 17:09:56 · 4539 阅读 · 0 评论 -
Enumerating Windows Processes
screen.width-500)this.style.width=screen.width-500;">Download source code for this article (.zip, 193KB)Original article (in Russian) IntroductionWin32 offers several methods to enu转载 2008-12-04 13:51:00 · 1275 阅读 · 0 评论 -
随笔
既然都是"寄人篱下",何必装的一个两个都像CTO一样说话呢:| -- 来自被迫写j2ee的郁闷人的胡言乱语现在在写文档,更何况有机会去做自己想做的,载自http://blog.csdn.net/pongba/archive/2007/04/11/1561006.aspx的刘未鹏,忙于整理文档,不交差被骂,呵呵原创 2008-07-11 10:10:00 · 480 阅读 · 0 评论 -
注入DLL的几种方法
摘自http://www.xfocus.net/articles/200403/681.html挂钩Windows API创建时间:2004-03-06文章属性:原创文章提交:SoBeIt (kinsephi_at_hotmail.com)===========================[ 挂钩Windows API ]==================原创 2008-04-17 11:39:00 · 3908 阅读 · 0 评论 -
#pragma 预处理指令详解
在所有的预处理指令中,#pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 其格式一般为: #pragma para 其中para为参数,下面来转载 2007-11-02 11:47:00 · 665 阅读 · 0 评论 -
windows游戏编程大师技巧1
技巧:使用内联功能。通过使用内联指令来完全摆脱调用功能甚至能够改善上面的技巧。内联指令不调用函数,而指示编译器将被调用函数代码放在需要调用该函数的最佳位置,这样做会使程序变得更大,但却提高了运行速度。下面是一个实例。 inline void Plot_I (int x,int y,int color) { //在屏幕上画一个点像素 video_buffer[x + y * MEMORY原创 2006-08-20 19:05:00 · 920 阅读 · 0 评论 -
windows游戏编程大师技巧--读书笔记2
要使用PlaySound()播放一个WAVE声音资源,一般需要下面四个步骤: 1.创建.WAV文件并存储在磁盘上。 2.创建.RC资源脚本程序以及相关的头文件。 3.编译该资源和程序代码。 4.使用MAKEINTRESOURCE()宏,通过WAVE资源名或者是通过WAVE资源标识符在程序中设定一个PlaySound()的调用。 让我们看几个例子。首先是有两种声音的常规RC文件:一个是字符原创 2006-07-22 12:08:00 · 1132 阅读 · 0 评论 -
一个C++的 XML 解析程序
http://iridia.ulb.ac.be/~fvandenb/tools/xmlParser.html 这里下载 http://iridia.ulb.ac.be/~fvandenb/download.php?id=43 下面是一个示例 xml 文件 在 http://iridia.ulb.ac.be/~fvandenb/tools/xmlParser.html程序转载 2006-07-21 10:07:00 · 1005 阅读 · 0 评论 -
windows游戏编程大师技巧--读书笔记1
图形环境就是描述视频系统和正在绘制表面的数据结构。奇妙的是,如果你需要绘制图形的话,只要获得一个指向图形环境的句柄即可。这便是关于WM_PAINT消息内容。 WM_DESTROY消息实际上非常有意思。WM_DESTROY在用户关闭窗口时被发送。当然仅仅是关闭窗口,而不是关闭应用程序。应用程序继续运行,但是没有窗口。对此要进行一些处理。大多数情况下,当用户关闭主要窗口时,也就意味着要关闭该应用程序原创 2006-07-22 10:09:00 · 949 阅读 · 0 评论 -
c++图标居中
CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0); // 使图标在工作矩形中居中 int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM原创 2006-07-16 19:07:00 · 1724 阅读 · 0 评论 -
com本质论读书笔记5-withevent背后vb6没有告诉我们的部分
静下心来又读了几章com本质论,发觉里面我曾经关心的技术,下面摘录如下: 假设ISurfboardUser 接口被定义为如下所示的dispinterface: [uuid(315BC28A-DEA7-11d0-8C5E-0080C73925BA)] dispinterface ISurfboardUser { methods: [i原创 2006-07-16 18:33:00 · 1386 阅读 · 0 评论 -
精通Visual C++图象编程----读书笔记1
读了半天终于找到读不懂代码的解释,现在摘抄如下: DIB和DDB位图的相互转换是DIB操作最重要的操作之一.BitmapToDIB将DDB转换为DIB,我们定义了两个函数变体,原形分别为: HDIB BitmapToDIB(HBITMAP,HPALETTE); HDIB BitmapToDIB(HBITMAP,HPALETTE,WORD); 前者是基本函数,原创 2006-07-16 18:21:00 · 841 阅读 · 0 评论 -
c++访问XML
bool r_flag=false; try { CoInitialize(NULL); IXMLHTTPRequestPtr xmlrequest; //定义变量 xmlrequest.CreateInstance("MSXML2.XMLHTTP"); xmlrequest->open(_bstr_t("POST"),_bstr_t(strUrl),_varian原创 2009-07-23 16:55:00 · 1088 阅读 · 0 评论 -
MSMQc++导入的结构体用c#读出放入结构体(我同事帮我研究出的关键代码)
using System;using System.Collections.Generic;using System.Messaging;using System.Text;using System.Runtime.InteropServices;namespace ConsoleApplication5{ [StructLayout(LayoutKind.Seq原创 2009-07-31 08:56:00 · 972 阅读 · 0 评论 -
谷歌chrome浏览器源码分析
转自CSDN前言:1、之所以整理此文,有俩个目的:一是为了供自己学习研究之用;二是为了备份,以作日后反复研究。除此之外,无它。2、此文的形式其实是有点俩不像的,既不是个人首创即原创,又非单纯的转载(有加工),无奈之下,权且称作翻译吧。有不妥之处,还望原作者,及读者见谅。 文中加入了我自己的一些见解,请自行辨别。顺便再说一句,duguguiyu写的这个Chrome源码转载 2016-01-21 15:24:24 · 8530 阅读 · 0 评论 -
破解C++ Redistributable Package版本之谜
我们平常玩的游戏、用的免CD破解补丁等程序常常都需要C++ Redistributable Package的支持。但是C++ Redistributable Package有众多版本,常常使新玩家觉得无从下手。本文的目的在于帮助大部分初级玩家解决区分c++的版本问题,让他们很快的找到自己需要的c++版本。 首先,我们来看看C++ Redistributable Packa转载 2015-11-25 14:19:33 · 1554 阅读 · 0 评论 -
C#调用C++封装(续)
这边继续是关于那个读取txt文件的频率增加的问题,这边的C++封装继续改善后发觉系统稳定了,感谢john的不懈努力和完善精神,发觉自己已经被生活磨去了很多专研精神,这边先上C语言的封装代码:// OptionsPlay.SharedFile.cpp : Defines the exported functions for the DLL application.//#include "std原创 2015-04-16 09:25:32 · 588 阅读 · 0 评论 -
用PINVOKE封装来读取txt到本地内存
之前的方法在放到服务器上有诸多的限制,这边最后使用了一个C的二维数组来读取txt文件,这个程序可能还有不妥之处,比如行列要指定之类的,先上调用的这段c的代码封装: // OptionsPlay.SharedFile.cpp : Defines the exported functions for the DLL application.//#include "stdafx.h"原创 2015-03-20 21:20:58 · 730 阅读 · 0 评论 -
使用LogonUser来代替WNetAddConnection2A来访问共享文件夹
这边在本地测试通过,用这个方法不是用net use命令模拟,而是类似credential来装扮一个权限的账户来访问网络路径的文件。 public class FromSharedFoldersInDomain :IDisposable { public static byte[] GetData(string remotePath, stri原创 2015-03-05 11:02:06 · 4129 阅读 · 0 评论 -
PInvoke WnetAddConnetion2A和WNetConcelConnection2A 来实现共享文件夹的文件获取
这边贴出了使用 WnetAddConnetion2A和WNetConcelConnection2A来实现共享文件夹的文件的获取,在获取过程是使用streamreader转成byte数组,这个方法其实就是net命令的C++实现,使用的PInvoke 来实现,在跑之前一定要清除网络映射盘和session ,使用命令net use * /delete来运行。 internal static class原创 2015-03-04 13:57:36 · 1135 阅读 · 0 评论 -
SHFileOperation的使用细节
这边使用SHFileOperation来实现网络文件的拷贝,源文件和目标文件都要两个"/0"结尾 public enum FO_Func : uint { FO_MOVE = 0x0001, FO_COPY = 0x0002, FO_DELETE = 0x0003, F原创 2015-03-02 15:44:46 · 809 阅读 · 0 评论 -
All-In-Onecode Framework has a integrated sets of link
http://aka.ms/onecode- pointing to onecode portal in codeplexhttp://aka.ms/onecodeingallery -pointing to onecode sample page in MSDN Sampl原创 2011-08-23 13:40:09 · 749 阅读 · 0 评论 -
New release of code samples from Microsoft All-In-One Code Framework (2011-6-19)
新的sample发布了,其中有很多和我们类似的程序员的努力!A new release of OneCode is available today (2011-6-20)http://1code.codeplex.com/releases/view/68596 We have many guest contributor from outside OneCode team转载 2011-06-21 09:20:00 · 693 阅读 · 0 评论 -
It's your pain killer,all of worldwide software engineer
http://blog.csdn.net/MSCodeSample/archive/2011/06/02/6460983.aspx原创 2011-06-03 21:03:00 · 650 阅读 · 0 评论 -
通过credential provide获得权限启动程序
<br /> <br />PInovke引用如下:<br /> class NativeMethod { [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] public struct CREDUI_INFO { public int cbSize; public IntPtr hwndParent;原创 2011-06-01 10:54:00 · 2593 阅读 · 1 评论 -
精通Visual C++图象编程---读书笔记3
扑获函数 为了方便从屏幕中直接获取位图,我们提供了六个位图扑获函数,分别可从屏幕、窗口和窗口客户区中获取DDB和DIB,它们的函数原型如下:HBITMAP CopyScreenToBitmap(LPRECT);HBITMAP CopyWindowToBitmap(HWND,WORD);HBITMAP CopyClientRectToBitmap(HWND hWnd,LP原创 2006-07-16 18:14:00 · 760 阅读 · 0 评论 -
精通Visual C++图象编程---读书笔记5
SQL mail主要是要完成這樣的功能有:用戶在網上註冊後,系統將隨機產生的密碼發送到用戶登記的Email用戶在論壇的帖子有回復時將內容發送到用戶的Email因為上述過程都是在存儲過程中完成的,所以避免了前臺程式對參數的傳輸處理,也不需要再用第三方的元件完成,感覺比較方便。 1.為了使用SQL mail,首先你的伺服器上得有SMTP服務,我沒有安裝win2000 server原创 2006-07-16 17:24:00 · 785 阅读 · 0 评论 -
精通Visual C++图象编程------读书笔记8
透明显示,是指在将图象显示到背景上时,图象上颜色为某种指定颜色的象素不被显示出来,而保留该处的背景显示.被指定的特定颜色叫做透明色。利用透明显示可以在背景上显示不规则的图形,是许多图象操作的基础,比如背景动画. 最直观的透明显示方式是遍历图象的每一象素,如果象素的颜色不等于透明色,则显示该象素,否则不显示.但这种方法的缺陷是致命的,其实现速度太慢! 使用BitBlt函数原创 2006-07-16 17:00:00 · 705 阅读 · 0 评论 -
精通Visual图象编程----读书笔记7
在Visual C++中实现调色板动画依赖于MFC类库提供的CPalette类和CDC类中的诺干成员函数,其基本步骤如下: (1)调用CPalette::CreatePalette(LPLOGPALETTE lpLogPalette)函数创建逻辑调色板,注意将参数LPLOGPALETTE 所指向的各颜色表项结构的peFlags域设置为PC_RESERVED,以防止其他窗口同该调色板匹配原创 2006-07-16 17:01:00 · 689 阅读 · 0 评论 -
Network Programming for Windows读书笔记8
select模型 select(选择)模型是Winsock中最常见的I/O模型.之所以称其为"select模型",是由于它的"中心思想"便是利用select函数,实现对I/O的管理!最初设计该模型时,主要面向的是某些使用Unix操作系统的计算机,它们采用的是Berkeley套接字方案.select 模型已集成到Winsock 1.1中,它使那些想避免在套接字调用过程中被无辜原创 2006-10-16 11:40:00 · 884 阅读 · 0 评论 -
Network Programming for Windows读书笔记6
winsock提供两种套接字模式:锁定和非锁定.本章第一部分将详细介绍这两种模式,并阐释一个应用程序如何通过它们管理I/O.如大家在本章的后面部分所见,Winsock提供了一些有趣的I/O模型,有助于应用程序通过一种"异步"方式,一次对一个或多个套接字上进行的通信加以管理.这些模型包括select(选择)、WSAAsyncSelect(异步选择)、WSAEventSelect(事件选择)、原创 2006-10-16 10:07:00 · 819 阅读 · 0 评论 -
Network Programming for Windows读书笔记9
WSAAsyncSelect Winsock提供了一个有用的异步I/O模型。利用这个模型,应用程序可在一个套接字上,接受以Windows消息为基础的网络事件通知.具体的做法是在建好一个套接字后,调用WSAAsyncSelect函数.该模型最早出现于Winsock的1.1版本中,用于帮助应用程序开发者面向一些早期的16位Windows平台(如windows for Wo原创 2006-10-18 11:17:00 · 929 阅读 · 0 评论 -
我一个同学朋友关于消息头的定义,非常具有参考价值
服务器与客户端之间通信格式以及协议字版本号:Ver 1.0.0.2作者:刘扬声明:因为时间有限,所以现在暂时以WSAEventSelect和Select消息模型为主,并对IOCP留有必要的连入接口,所以这份报文以这两种模型为基础。1. 报文头:l 版本号:10个字符,以Ver开头,例如:Ver1.0.0.0=Ver1000。转载 2006-10-11 10:24:00 · 1573 阅读 · 0 评论 -
Network Programming for Windows读书笔记2
connect函数和WSAConnect函数 最后一步就是连接.这是通过调用connect 函数或WSAConnect函数来完成的.我们先来看看该函数的Winsock1版本,其定义如下: int connect( SOCKET s, const struct sockaddr FAR* name,原创 2006-10-10 10:37:00 · 873 阅读 · 0 评论 -
Network Programming for Windows读书笔记1
TCP状态 作为一名Winsock程序员,通常没必要了解实际的TCP状态.但了解TCP状态,就能更好的地理解Winsock API调用如何基层协议中的改变产生影响.此外,许多程序员在关闭套接字时,会碰到一个常见问题;围绕套接字关闭的TCP状态是我们目前最感兴趣的问题. 对每个套接字来说,它的初始状态都是CLOSED.诺客户机初始化了一个连接,就会向服务器发送一个SYN包原创 2006-10-08 21:58:00 · 1057 阅读 · 0 评论 -
windows网络编程读书笔记1
打开//Myserver/Myshare/Sample.mp31)使用 CreateFile这个API函数,应用程序向本地操作系统提交一个请求,要求打开//Myserver/Myshare/Sample.mp32)根据从UNC路径描述中获得的信息,本地(本机)操作系统的文件系统判断出该I/O(输入/输出)请求的目的地是一台远程机器,名为//Myserver,所以将此请求传递给MUP.3原创 2006-09-22 10:29:00 · 902 阅读 · 0 评论 -
Game Programming Gems 1读书笔记(1)
The Singleton Pattern The singleton pattern is used when a single global object must be accessed across a wide number of classed and/or modules. Simply creating a non-local static object wor原创 2006-09-02 22:28:00 · 1202 阅读 · 0 评论 -
Game Programming Gems 1中关于has a 和 is a的定义
The simple rule is this:If an object has an is-a relationship to another object,use public inheritance.If a has-a relationship describes the objects best,then use layering. What exactly do the term原创 2006-09-02 21:46:00 · 860 阅读 · 0 评论 -
对以前不懂mfc的方面的总结
对预编译头文件说明如下:所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。预编译头文件通过编译stdafx.cpp生成,以工程名命名,由于预编译的头文件的后缀是“pch”,所以编译结果文件是projectname.pc原创 2006-08-23 03:29:00 · 1190 阅读 · 0 评论 -
精通Visual C++图象编程---读书笔记6.1
绘制DIB:直接在DIB进行GDI操作 Win32 SDK和MFC都提供大量的GDI操作函数,如能直接在DIB处理中使用这些函数,将大大提高DIB的处理能力,作为CDib类的一大特色,CDib类设计了一种巧妙的方式来实现直接绘制DIB,即在DIB中进行GDI操作. 对GDI操作进行分析可发现,几乎所有的GDI操作都是对设备上下文来进行的(HDC/CDC、CPaintDC、CWin原创 2006-07-16 17:10:00 · 761 阅读 · 0 评论