<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[tzz8080的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/tzz8080</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; tzz8080]]></copyright><item><title><![CDATA[cmake使用python3]]></title><link>https://blog.youkuaiyun.com/tzz8080/article/details/125522609</link><guid>https://blog.youkuaiyun.com/tzz8080/article/details/125522609</guid><author>tzz8080</author><pubDate>Wed, 29 Jun 2022 15:16:49 +0800</pubDate><description><![CDATA[cmake使用python3，所有平台。]]></description><category></category></item><item><title><![CDATA[nsis关联文件，已验证]]></title><link>https://blog.youkuaiyun.com/tzz8080/article/details/124714144</link><guid>https://blog.youkuaiyun.com/tzz8080/article/details/124714144</guid><author>tzz8080</author><pubDate>Wed, 11 May 2022 17:03:02 +0800</pubDate><description><![CDATA[Section ".dsl" DSViewFile
SectionIn 1
WriteRegStr HKCR ".dsl" "" "DSViewFile"
WriteRegStr HKCR "DSViewFile" "" "DSView data file"
WriteRegStr HKCR "DSViewFile\DefaultIcon" "" "$INSTDIR\DSView.exe,0"
WriteRegStr HKCR "DSViewFile\shell" "" ""
WriteRegStr HKC]]></description><category></category></item><item><title><![CDATA[论shared_ptr的必要性]]></title><link>https://blog.youkuaiyun.com/tzz8080/article/details/121121081</link><guid>https://blog.youkuaiyun.com/tzz8080/article/details/121121081</guid><author>tzz8080</author><pubDate>Wed, 03 Nov 2021 15:02:10 +0800</pubDate><description><![CDATA[c++中，shared_ptr是一个智能指针类，用来管理new出来的对象资源，但引用计数为0时，资源自动回收，不用手动delete。这一看起来，感觉这东西好像不错，让c++具有了自动管理回收内存的能力。但是它有太多不好的地方了:

1. 对象的生命期不好跟踪;

2.必须一直绑定一个shared_ptr传参;

3.让代码量增加；

4.调试还不能f11进入函数;

 其实c++的资源回收问题就一条规则： 就是资源谁管理谁回收。

所以，不建议在项目中使用shared_ptr。
...]]></description><category></category></item><item><title><![CDATA[strncpy函数的坑]]></title><link>https://blog.youkuaiyun.com/tzz8080/article/details/25041011</link><guid>https://blog.youkuaiyun.com/tzz8080/article/details/25041011</guid><author>tzz8080</author><pubDate>Tue, 28 Sep 2021 10:28:59 +0800</pubDate><description><![CDATA[新手都知道new一个对象后，可以用delete对这个对象的指针进行删除，完成内存回收。]]></description><category></category></item><item><title><![CDATA[不使用递归的二分查找]]></title><link>https://blog.youkuaiyun.com/tzz8080/article/details/102577269</link><guid>https://blog.youkuaiyun.com/tzz8080/article/details/102577269</guid><author>tzz8080</author><pubDate>Tue, 15 Oct 2019 23:48:06 +0800</pubDate><description><![CDATA[记得很多年前看的数据结构教程，上边也讲到二分查找算法，但好像用的是递归，最近项目需要，试着清理了一下排递归的写法，直接上代码:

static void Main(string[] args)
 {
 int len = 100000;
 var arr = new int[len];
 for (var i=0; i...]]></description><category></category></item><item><title><![CDATA[关于canvas抗锯齿问题]]></title><link>https://blog.youkuaiyun.com/tzz8080/article/details/93686032</link><guid>https://blog.youkuaiyun.com/tzz8080/article/details/93686032</guid><author>tzz8080</author><pubDate>Wed, 26 Jun 2019 02:14:22 +0800</pubDate><description><![CDATA[有时候需要用canvas来绘制图表，发现设置线条大小为1,或者0.5时，画出来的线条不够细。

canvas有一个方法getBoundingClientRect()可获得一个rect的大小，有人说canvas.width和height的rect的一样，再平衡0.5单位。这个画出来的线还是不够细；w3cschool给出的解决方案是：

var w = 300; //css的大小

var h = 2...]]></description><category></category></item><item><title><![CDATA[C#封装的库，包括网络通信， excel导出等。没文档]]></title><link>https://blog.youkuaiyun.com/tzz8080/article/details/54416751</link><guid>https://blog.youkuaiyun.com/tzz8080/article/details/54416751</guid><author>tzz8080</author><pubDate>Thu, 13 Jun 2019 20:02:19 +0800</pubDate><description><![CDATA[搞开发的人，一般都封装自己的一些类库。对于数据库操作的，大多数人都喜欢做自己的封装。本人也封装了一个用于数据库操作的类库，特点是简单易用， 对它一直有维护，从09年开始吧，最近还增加了简易的orm方式的操作。代码是基于c#语言的，源码地址：https://code.aliyun.com/tzz8080/baseLib.git， 对应的是lib.db工程。有兴趣的朋友可以下载。在这里...]]></description><category></category></item><item><title><![CDATA[npoi导出的excel中设置列宽]]></title><link>https://blog.youkuaiyun.com/tzz8080/article/details/51893264</link><guid>https://blog.youkuaiyun.com/tzz8080/article/details/51893264</guid><author>tzz8080</author><pubDate>Tue, 12 Jul 2016 22:53:37 +0800</pubDate><description><![CDATA[npoi中，sheet.SetColumnWidth(int col, int width)，这个width是按一个字符数 * 256的长度来算的，这样的话excel实际宽度就是自己想设定的值。
当我们想给列设置100pt的宽度，先用这个api设置的参数为100 * 20,观察excel脚本中的实际列宽为另一个值，这个值和100是2.44的比例关系，基于这个思路，
以下可以用一个办法求出宽度的]]></description><category></category></item><item><title><![CDATA[关于npoi导出的excel中设置上下标]]></title><link>https://blog.youkuaiyun.com/tzz8080/article/details/51872897</link><guid>https://blog.youkuaiyun.com/tzz8080/article/details/51872897</guid><author>tzz8080</author><pubDate>Sun, 10 Jul 2016 19:40:13 +0800</pubDate><description><![CDATA[//NPOI 库在生成excel是速度比较快的，可添加图片，设置连框，合并单元格等。微软的com生成excel方式可以扔掉了，那东西太慢。


HSSFFont subscript = (HSSFFont)workbook.CreateFont();  //创建字体

            subscript.TypeOffset = NPOI.SS.UserModel.FontSup]]></description><category></category></item><item><title><![CDATA[SQL Server 2008选择Windows身份验证无法登录]]></title><link>https://blog.youkuaiyun.com/tzz8080/article/details/50037331</link><guid>https://blog.youkuaiyun.com/tzz8080/article/details/50037331</guid><author>tzz8080</author><pubDate>Wed, 25 Nov 2015 15:04:42 +0800</pubDate><description><![CDATA[在连接SQL Server 2008时，选择Windows身份验证，提示用户名或密码有误。    
 
在选择Windows身份验证时，用户名密码一栏会变为暗色，无法手工输入或修改。且用户名处会自动输入当前登录的Windows账户Administrator,所以不大可能是用户名密码有误。
 
后来仔细一想，无论是Windows身份验证还是SQL身份验证，在SQL Server里都应该存在对]]></description><category></category></item><item><title><![CDATA[c#关于socket连接超时控制的方案]]></title><link>https://blog.youkuaiyun.com/tzz8080/article/details/40431457</link><guid>https://blog.youkuaiyun.com/tzz8080/article/details/40431457</guid><author>tzz8080</author><pubDate>Fri, 24 Oct 2014 18:29:58 +0800</pubDate><description><![CDATA[之前有一个项目用到Remoting技术，当远程的地址无效或服务器没运行时，方向远程对象方向，会经过几十秒的时间才抛出异常。因为我用的是tcp模式，所以想到可以用socket来测试连接，就可以在调用远程对象方法之前知道远端服务有没有运行。代码如下：


public class TcpServiceConnect
    { 
        protected EventWaitHand]]></description><category></category></item><item><title><![CDATA[在windows下使用jemalloc库]]></title><link>https://blog.youkuaiyun.com/tzz8080/article/details/12996471</link><guid>https://blog.youkuaiyun.com/tzz8080/article/details/12996471</guid><author>tzz8080</author><pubDate>Thu, 24 Oct 2013 13:27:41 +0800</pubDate><description><![CDATA[我们在用c、c++开发的时候，经常用到系统的malloc和free函数来分配和释放内存，那有的人说，频繁的申请和释放，时间长了，会乱成内存泄露，也会影响服务器的性能。请看以下代码：
for (int i=0; i
{
            void *p = malloc(10000);

            if (p)
             free (p);

 }]]></description><category></category></item><item><title><![CDATA[生成指定范围的随机数]]></title><link>https://blog.youkuaiyun.com/tzz8080/article/details/12949323</link><guid>https://blog.youkuaiyun.com/tzz8080/article/details/12949323</guid><author>tzz8080</author><pubDate>Tue, 22 Oct 2013 16:01:22 +0800</pubDate><description><![CDATA[#include 
#include  

#define X_RANDOM(a,b)     (rand()%((b)-(a)) + (a))

static int xrange_rand(int a, int b)
{
      //srand( (unsigned)time(NULL) );

      int rd = (rand()%((b)-(a)) + (a)]]></description><category></category></item><item><title><![CDATA[mysql_real_connect 连接失败 问题！]]></title><link>https://blog.youkuaiyun.com/tzz8080/article/details/12838883</link><guid>https://blog.youkuaiyun.com/tzz8080/article/details/12838883</guid><author>tzz8080</author><pubDate>Thu, 17 Oct 2013 16:18:10 +0800</pubDate><description><![CDATA[mysql 的c函数mysql_real_connect, 用localhost为参数进行连接，第一次会成功，但第二次就会抛出异常。本人遇到这个问题，查找了好久，最后才发现问题所在！
解决办法：改用ip地址就可以!
经验共享！]]></description><category></category></item><item><title><![CDATA[c++下list在遍历时删除节点的方法]]></title><link>https://blog.youkuaiyun.com/tzz8080/article/details/10348949</link><guid>https://blog.youkuaiyun.com/tzz8080/article/details/10348949</guid><author>tzz8080</author><pubDate>Mon, 26 Aug 2013 16:13:22 +0800</pubDate><description><![CDATA[c++中，list是个链表，当遍历中删除当前节点，在下一次循环时，对已删除iterator节点进行递加操作，将导致错误。那么，我们可以在删除先，先保存要删除的节点，然后再移动，再删除，就不会出现问题了。以下是示意代码。


#include 

using namespace std;

int  main(int argc, char* argv[])
{]]></description><category></category></item><item><title><![CDATA[java下整数转成字节数组]]></title><link>https://blog.youkuaiyun.com/tzz8080/article/details/9839385</link><guid>https://blog.youkuaiyun.com/tzz8080/article/details/9839385</guid><author>tzz8080</author><pubDate>Thu, 08 Aug 2013 17:40:01 +0800</pubDate><description><![CDATA[java下写socket通信的时候，协议可能是以2字节数字表示，在java下好像没有直接的方法将数字转成字节数组，于是就在别人的方法的基础上改进，原来的方法字节顺序存放不对，会导致服务端下转换会出问题。现在这个问题已经改进了，大家可以参考一下。




 public static byte[] intToBytes(int value)
     {
         byte[]]]></description><category></category></item><item><title><![CDATA[android下的udp问题]]></title><link>https://blog.youkuaiyun.com/tzz8080/article/details/9770289</link><guid>https://blog.youkuaiyun.com/tzz8080/article/details/9770289</guid><author>tzz8080</author><pubDate>Mon, 05 Aug 2013 17:39:28 +0800</pubDate><description><![CDATA[在新建一个工程，测试用udp通信，虽然在xml里加入了权限的设置，但在运行时老提示资源未找到。找了半天，r后来在xml里加入以下设置，问题解决。

    
    


其中，最后一行不能少！]]></description><category></category></item><item><title><![CDATA[win7下附加数据库，拒绝访问]]></title><link>https://blog.youkuaiyun.com/tzz8080/article/details/9701105</link><guid>https://blog.youkuaiyun.com/tzz8080/article/details/9701105</guid><author>tzz8080</author><pubDate>Thu, 01 Aug 2013 13:27:29 +0800</pubDate><description><![CDATA[在win7的系统下，安装sqlserver2012,把之前的数据库附加进去，提示拒绝访问，检查以管理员sa账号登录了，问题依然。后检查服务列表，把sqlserver服务以system账号起动，问题解决！]]></description><category></category></item><item><title><![CDATA[error MSB6006 错误]]></title><link>https://blog.youkuaiyun.com/tzz8080/article/details/9674835</link><guid>https://blog.youkuaiyun.com/tzz8080/article/details/9674835</guid><author>tzz8080</author><pubDate>Wed, 31 Jul 2013 23:58:20 +0800</pubDate><description><![CDATA[最近一个c#工程，之前编译正常。后重装系统，安装DevExpress后，编译的过程中，什么错误也没提示，只提示"4>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2401,5): error MSB6006: “LC.exe”已退出，代码为 -1。",真好的诡异，后来想到把工程下licenses.lic]]></description><category></category></item><item><title><![CDATA[c#下居中打印]]></title><link>https://blog.youkuaiyun.com/tzz8080/article/details/8882406</link><guid>https://blog.youkuaiyun.com/tzz8080/article/details/8882406</guid><author>tzz8080</author><pubDate>Fri, 03 May 2013 23:39:34 +0800</pubDate><description><![CDATA[居中打印一个较简单的办法，在打印事件里取页面大小，根据要打印内容的宽和高来计算正确的起始x和y，一般都能实现较居中的打印了。

void pd_PrintPage(object sender, PrintPageEventArgs e)
{

               Graphics g = e.Graphics;
                g.PageUnit = Gra]]></description><category></category></item></channel></rss>