<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sdudubing的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sdudubing</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sdudubing]]></copyright><item><title><![CDATA[Java工作笔记：关于Java调用C库时，Json和结构体间相互转换]]></title><link>https://blog.youkuaiyun.com/sdudubing/article/details/79130571</link><guid>https://blog.youkuaiyun.com/sdudubing/article/details/79130571</guid><author>sdudubing</author><pubDate>Mon, 22 Jan 2018 16:31:50 +0800</pubDate><description><![CDATA[﻿﻿
Json和结构体间相互转换


这几个星期一直很忙，这篇文章本来是打算上周末发的，结果拖到了现在。


Java web中遇见把调用C库时，入参和出参的结构体转换成Json格式输出。有的结构体内含有大量属性的时候，一个一个添加手都要加断了。于是我使用了JAVA的反射机制来实现结构体和JSON格式之间的相互转换。先贴代码：



[java] 
view plain ]]></description><category></category></item><item><title><![CDATA[如何有效使用Project（1）——编制进度计划、保存基准]]></title><link>https://blog.youkuaiyun.com/sdudubing/article/details/50791431</link><guid>https://blog.youkuaiyun.com/sdudubing/article/details/50791431</guid><author>sdudubing</author><pubDate>Thu, 03 Mar 2016 20:33:04 +0800</pubDate><description><![CDATA[1.前言：

软件产品的研发、升级、定制等，一般都是以项目的形式进行，此时项目进度计划以及资源使用情况就变成了项目经理关注的重点。如何让项目计划有效可控，及时暴露问题？如何查看资源的负荷情况，看资源分配是否合理。

当然，如果你的公司已经实施了专门的PM软件来监督管控，可以忽略本文。否则，你可以用微软的Project来做到这一工作。

我也算是一个专业的从事PM软件产品的人（虽然我们的]]></description><category></category></item><item><title><![CDATA[select返回记录的顺序]]></title><link>https://blog.youkuaiyun.com/sdudubing/article/details/8683965</link><guid>https://blog.youkuaiyun.com/sdudubing/article/details/8683965</guid><author>sdudubing</author><pubDate>Sun, 17 Mar 2013 16:18:09 +0800</pubDate><description><![CDATA[select返回记录的顺序
中兴通讯重庆研究所 游波 吴育红
原文地址：http://blog.youkuaiyun.com/youbo2004/article/details/107888

关键词：select，顺序，优化，备份，扫描，索引
文章摘要：
   当我们执行了select语句，select返回的记录的顺序对我们编程方式有较大影响，对数据库记录备份清除以及sql性能优化都有很大的关系]]></description><category></category></item><item><title><![CDATA[VC6.0与WIN7兼容性问题的解决]]></title><link>https://blog.youkuaiyun.com/sdudubing/article/details/8521110</link><guid>https://blog.youkuaiyun.com/sdudubing/article/details/8521110</guid><author>sdudubing</author><pubDate>Sat, 19 Jan 2013 23:18:18 +0800</pubDate><description><![CDATA[VC6.0和WIN7不兼容的问题，相信很多人都遇到过。不是没法安装就是编译出错，要不就是不能打开文件。之前我采用的方法是避开使用VC6.0，采用开源的CODE::BLOCKS编译C++程序。然而开源的CODE::BLOCKS不能进行windows下的界面编程，由于项目需要，CODE::BLOCKS只能满足我个人学习的需求不能适应项目开发，庞大而臃肿的VS我一向没有好感，转而如何解决兼容性问题成了不]]></description><category></category></item><item><title><![CDATA[SQL2000中创建作业（定时查询，更新）]]></title><link>https://blog.youkuaiyun.com/sdudubing/article/details/8251578</link><guid>https://blog.youkuaiyun.com/sdudubing/article/details/8251578</guid><author>sdudubing</author><pubDate>Mon, 03 Dec 2012 14:10:20 +0800</pubDate><description><![CDATA[企业管理器 
--管理 
--SQL Server代理 
--右键作业 
--新建作业 
--"常规"项中输入作业名称 
--"步骤"项 
--新建 
--"步骤名"中输入步骤名 
--"类型"中选择"Transact-SQL 脚本(TSQL)" 
--"数据库"选择执行命令的数据库 
--"命令"中输入要执行的语句: 
   update base set flag=0]]></description><category></category></item><item><title><![CDATA[完成端口详解(4)]]></title><link>https://blog.youkuaiyun.com/sdudubing/article/details/8198912</link><guid>https://blog.youkuaiyun.com/sdudubing/article/details/8198912</guid><author>sdudubing</author><pubDate>Mon, 19 Nov 2012 12:28:36 +0800</pubDate><description><![CDATA[2007年01月27日 星期六 15:34




放在一起看看

      以上各节中，我们讨论了开发高性能的、大响应规模的应用程序所需的函数、方法和可能遇到的资源瓶颈问题。这些对你意味着什么呢？其实，这取决于你如何构造你的服务器和客户端。当你能够在服务器和客户端设计上进行更好地控制时，那么你越能够避开瓶颈问题。

      来看一个示范的环境。我们要设计一个服务器来响应客]]></description><category></category></item><item><title><![CDATA[IOCP知识点及疑惑]]></title><link>https://blog.youkuaiyun.com/sdudubing/article/details/8196928</link><guid>https://blog.youkuaiyun.com/sdudubing/article/details/8196928</guid><author>sdudubing</author><pubDate>Sun, 18 Nov 2012 19:14:52 +0800</pubDate><description><![CDATA[原文地址：http://hzdiy.iteye.com/blog/778194
2． IOCP发送大数量的问题 
有A，B两块数据，如AB两块数据，如果A数据比较大，异步只发送了一部分就返回了，B数据已经提交，¬这时候再发A剩下的部分就乱顺序了 ，该如何处理。 
所有重叠操作可确保按照应用程序投递的顺序执行. 然而, 不能确保从完成端口返回的完成通知也按照上述顺序执行". 由此可见, "操作]]></description><category></category></item><item><title><![CDATA[Delphi 小谈之TList 篇(转)]]></title><link>https://blog.youkuaiyun.com/sdudubing/article/details/8058325</link><guid>https://blog.youkuaiyun.com/sdudubing/article/details/8058325</guid><author>sdudubing</author><pubDate>Wed, 10 Oct 2012 22:23:21 +0800</pubDate><description><![CDATA[转至：http://blog.youkuaiyun.com/jqandjq/article/details/5429137

看了这里标题，大家可能以为我会谈TListBox控件，那就错了。我要谈的是Delphi提供给我们的具有列表性质的类：TstringList、TList和TObjectList。TstringList用来存放字符串，TList存放指针，而TObjectList则存放对象(Object]]></description><category></category></item><item><title><![CDATA[Java初学者不得不知的概念，JDK,JRE,JVM的区别？]]></title><link>https://blog.youkuaiyun.com/sdudubing/article/details/8024781</link><guid>https://blog.youkuaiyun.com/sdudubing/article/details/8024781</guid><author>sdudubing</author><pubDate>Thu, 27 Sep 2012 14:16:16 +0800</pubDate><description><![CDATA[JVM（Java Virtual Machine Java虚拟机)
可以理解为是一个虚拟出来的计算机，具备着计算机的基本运算方式，
它主要负责将java程序生成的字节码文件解释成具体系统平台上的机器指令。
让具体平台如window运行这些Java程序。

JRE(Java Runtime Environment Java运行环境)
包括Java虚拟机(JVM Java Virtual]]></description><category></category></item><item><title><![CDATA[VS2008快捷键]]></title><link>https://blog.youkuaiyun.com/sdudubing/article/details/8016974</link><guid>https://blog.youkuaiyun.com/sdudubing/article/details/8016974</guid><author>sdudubing</author><pubDate>Tue, 25 Sep 2012 14:52:56 +0800</pubDate><description><![CDATA[编辑:
CTRL + M, O:折叠当前源代码文件中的所有大纲
CTRL + M, L:将当前源代码的大纲在折叠与展开间切换
CTRL + M, M:将当前选中的源代码在折叠与展开间切换
CTRL + M, P:将当前源代码文档中的所有大纲信息清除
CTRL + K, C or CTRL + E, C:注释掉所有选中的源代码部分
CTRL + K, U or CTRL + E, U:取]]></description><category></category></item><item><title><![CDATA[Java  Unicode简介]]></title><link>https://blog.youkuaiyun.com/sdudubing/article/details/7958093</link><guid>https://blog.youkuaiyun.com/sdudubing/article/details/7958093</guid><author>sdudubing</author><pubDate>Sat, 08 Sep 2012 14:53:24 +0800</pubDate><description><![CDATA[Unicode是一种字符编码规范 。 

    先从ASCII说起。ASCII是用来表示英文字符的一种编码规范，每个ASCII字符占用1个字节（8bits） 

    因此，ASCII编码可以表示的最大字符数是256，其实英文字符并没有那么多，一般只用前128个（最高位为0），其中包括了控制字符、数字、大小写字母和其他一些符号 。 

    而最高位为1的另128个字符被成为“扩]]></description><category></category></item><item><title><![CDATA[SOCKET模型之重叠I/O]]></title><link>https://blog.youkuaiyun.com/sdudubing/article/details/7870928</link><guid>https://blog.youkuaiyun.com/sdudubing/article/details/7870928</guid><author>sdudubing</author><pubDate>Wed, 15 Aug 2012 21:34:41 +0800</pubDate><description><![CDATA[转载之：http://blog.sina.com.cn/s/blog_540e3fbb0100neln.html

(本文假设你已经具备用SOCKET简单模型编程的能力，如果对SOCKET一无所知请关注本系列其他文章)

目录：

1． 重叠模型的优点

2． 重叠模型的基本原理

3． 关于重叠模型的基础知识

4． 重叠模型的实现步骤

5． 多客户端情况的注意事项]]></description><category></category></item><item><title><![CDATA[深度探索I/O完成端口]]></title><link>https://blog.youkuaiyun.com/sdudubing/article/details/7861750</link><guid>https://blog.youkuaiyun.com/sdudubing/article/details/7861750</guid><author>sdudubing</author><pubDate>Mon, 13 Aug 2012 20:15:44 +0800</pubDate><description><![CDATA[原文地址：http://blog.pfan.cn/xman/44363.html


引言
要想编写一个高性能的服务器应用程序，必须实现一个高效的线程模型。让太少或者太多的服务器线程来处理客户的请求，都可能导致性能问题。例如，如果一个服务器创建单个线程来处理所有的请求，那么客户端可能长期等待而得不到响应，因为服务器同一时刻只能忙于处理一个请求。当然单个线程也能并发处理多个请求，当I/O操作]]></description><category></category></item><item><title><![CDATA[MFC的模块状态：从AfxGetApp()和AFX_MANAGE_STATE()看MFC的模块状态]]></title><link>https://blog.youkuaiyun.com/sdudubing/article/details/7845312</link><guid>https://blog.youkuaiyun.com/sdudubing/article/details/7845312</guid><author>sdudubing</author><pubDate>Wed, 08 Aug 2012 22:18:41 +0800</pubDate><description><![CDATA[转载地址：http://hi.baidu.com/rootlife/blog/item/2f37e354ad8cdc5bd10906be.html

Introduction
当我们在用MFC编程的时候，我们经常用到AfxGetApp()来获得当前的CWinApp的Instance。看看MFC的源代码中AfxGetApp()的实现，你会发现AfxGetApp()的实现并不像一般情况下面那样直]]></description><category></category></item><item><title><![CDATA[判断线程是否释放]]></title><link>https://blog.youkuaiyun.com/sdudubing/article/details/7698531</link><guid>https://blog.youkuaiyun.com/sdudubing/article/details/7698531</guid><author>sdudubing</author><pubDate>Thu, 28 Jun 2012 10:31:32 +0800</pubDate><description><![CDATA[/判断线程是否释放 
//返回值：0-已释放；1-正在运行；2-已终止但未释放； 
//3-未建立或不存在 
function TFrmMain.CheckThreadFreed(aThread: TThread): Byte; 
var 
i: DWord; 
IsQuit: Boolean; 
begin 
if Assigned(aThread) then 
begin]]></description><category></category></item><item><title><![CDATA[GPRS的工作原理、主要特点]]></title><link>https://blog.youkuaiyun.com/sdudubing/article/details/7682467</link><guid>https://blog.youkuaiyun.com/sdudubing/article/details/7682467</guid><author>sdudubing</author><pubDate>Thu, 21 Jun 2012 11:30:07 +0800</pubDate><description><![CDATA[GPRS的工作原理、主要特点:

引 言 
近年来,通信技术和网络技术的迅速发展,特别是无线通信技术的发展,使得电力系统的自动化程度进一步提高。GSM网络出现后，技术人员很快把GSM模块嵌入到各种仪表仪器中，如多功能电能表、故障测录仪、抄表系统和用电负荷监控等，从而使这些仪表仪器具有远程通信功能。


GPRS是在现有GSM系统上发展出来的一种新的数据承载业务,支持TCP/IP协议，可]]></description><category></category></item><item><title><![CDATA[关于TTimer 控件]]></title><link>https://blog.youkuaiyun.com/sdudubing/article/details/7652369</link><guid>https://blog.youkuaiyun.com/sdudubing/article/details/7652369</guid><author>sdudubing</author><pubDate>Mon, 11 Jun 2012 14:15:38 +0800</pubDate><description><![CDATA[近期写程序时用了TTimer控件，执行的代码如下：
var
pexe : pexetype;
i,j : integer;
url,ss : string;
begin
for i := 0 to monlist.Count - 1 do
begin
pexe := monlist[i];
if pexe.otherInfo = 0 then
continue;
url :=]]></description><category></category></item><item><title><![CDATA[一定要记住这20种PS技术！！！会让你的照片美的不行！！！]]></title><link>https://blog.youkuaiyun.com/sdudubing/article/details/7579798</link><guid>https://blog.youkuaiyun.com/sdudubing/article/details/7579798</guid><author>sdudubing</author><pubDate>Fri, 18 May 2012 12:59:37 +0800</pubDate><description><![CDATA[照片名称：调出照片柔和的蓝黄色-简单方法，
1、打开原图素材，按Ctrl + J把背景图层复制一层，点通道面板，选择蓝色通道，图像 > 应用图像，图层为背景，混合为正片叠底，不透明度50%，反相打钩，
2、回到图层面板，创建曲线调整图层，蓝通道：44，182，红通道：89，108
3、新建一个图层，填充黑色，图层混合模式为正片叠底，不透明度为60%，选择椭圆选框工具选区中间部分，按Ctrl]]></description><category></category></item><item><title><![CDATA[TThreadList的用法]]></title><link>https://blog.youkuaiyun.com/sdudubing/article/details/7545084</link><guid>https://blog.youkuaiyun.com/sdudubing/article/details/7545084</guid><author>sdudubing</author><pubDate>Tue, 08 May 2012 10:13:11 +0800</pubDate><description><![CDATA[初次使用TThreadList时找不到.Count属性，也找不到.Items属性，没有这两个属性就不能访问列表中的内容，这可怎么用呢，后来发现了LockList方法，这个方法返回一个TList，哦，原来是首先通过LockList安全的得到一个TList然后使用TList返回列表中的内同，当然最后不要忘了调用UnLock函数。

例子：
with MyThreadList.LockList d]]></description><category></category></item><item><title><![CDATA[TList类]]></title><link>https://blog.youkuaiyun.com/sdudubing/article/details/7545005</link><guid>https://blog.youkuaiyun.com/sdudubing/article/details/7545005</guid><author>sdudubing</author><pubDate>Tue, 08 May 2012 09:59:13 +0800</pubDate><description><![CDATA[原文地址：http://blog.youkuaiyun.com/xiaokexinger/article/details/1637677
TList 类
TList 类实际上就是一个可以存储指针的容器类，提供了一系列的方法和属性来添加，删除，重排，定位，存取和排序容器中的类，它是基于数组的机制来实现的容器，比较类似于C++中的Vector和java中的ArrayList，TList 经常用来保存一组对象列]]></description><category></category></item></channel></rss>