AfxBeginThread
是MFC封装的函数,返回的是CWinThread*
,不能用于CloseHandle
。AfxBeginThread
在线程执行完后会句柄资源自动释放。
如果是::CreateThread
创建的线程则要手工调用CloseHandle
释放线程句柄。
AfxBeginThread
是MFC封装的函数,返回的是CWinThread*
,不能用于CloseHandle
。AfxBeginThread
在线程执行完后会句柄资源自动释放。
如果是::CreateThread
创建的线程则要手工调用CloseHandle
释放线程句柄。
c#连接access 时出现:未在本地计算机上注册 Microsoft.Jet.OLEDB.4.0 的错误
解决方案:
在VS项目属性中,生成页, 把“目标平台”改为X86
即可,如下图所示:
C#合并数组
public string[] MergerArray(string[] First, string[] Second)
{
string[] result = new string[First.Length + Second.Length];
First.CopyTo(result, 0);
Second.CopyTo(result, First.Length);
return result;
}
泛型版本
public T[] MergerArray<T>(T[] First,T[] Second)
{
T[] result =new T[First.Length + Second.Length];
First.CopyTo(result, 0);
Second.CopyTo(result, First.Length);
return result;
}
合并多个数组
/// <summary>
/// 连接多个数组
/// </summary>
/// <typeparam name="T">数组数据类型</typeparam>
/// <param name="source">源数组</param>
/// <param name="arrays">被连接的多个数组</param>
/// <returns></returns>
public static T[] Concat<T>(this T[] source, params T[][] arrays)
{
if (source == null)
{
throw new ArgumentNullException("source");
}
var length = source.Length + arrays.Sum(array => array != null ? array.Length : 0);
var result = new T[length];
length = source.Length;
Array.Copy(source, 0, result, 0, source.Length);
foreach (var array in arrays)
{
if (array != null)
{
Array.Copy(array, 0, result, length, array.Length);
length += array.Length;
}
}
return result;
}
不知道你装的是什么系统,就拿比较普遍的CentOS来说吧。
首先执行yum update
更新你的系统,升级后应该是6.6,确保一些库是最新的。
先说apache,最新版本是2.4。
进入 http://apache.org/dyn/closer.cgi 到官网找下载包。下载链接里面提供了几个镜像,找一个.cn的点进去(国内的速度快)。比如 http://mirrors.cnnic.cn/apache/
找到httpd目录点击进入。复制最后一个的下载链接 httpd-2.4.10.tar.gz http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.10.tar.gz
然后下载到你的服务器wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.10.tar.gz
解压 tar -xvf httpd-2.4.10.tar.gz
然后下载安装 apache所需要的两个包 wget http://mirror.esocc.com/apache/apr/apr-1.4.8.tar.gz
这两个有最新版本, 你下载对应的最新的就是。
wget http://mirror.esocc.com/apache/apr/apr-util-1.5.2.tar.gz
解压tar -xvf apr-1.4.8.tar.gz
tar -xvf apr-util-1.5.2.tar.gz
把依赖包移到apache源码目录下 mv apr-1.4.8 httpd-2.4.10/srclib/apr
mv apr-util-1.5.2 httpd-2.4.10/srclib/apr-util
cd httpd-2.4.10
配置编译文件./configure --with-included-apr --enable-nonportable-atomics=yes --with-z
如果你想安装到指定目录,则加上–prefix=.. 比如 --prefix=/web/apache
如果你只打算在新式的CPU上运行Apache,你可以在编译时使用 --enable-nonportable-atomics
选项:
如果你的是新装的服务器,可能需要安装pcre zlib。执行 yum install zlib-devel pcre-devel
像gcc /g++ make之类的基础工具用阿里云的ECS就不用再装了,你装完以后默认都带了。
最后是 make -j8 && make install
C# 生成允许重复的排列、组合
/// <summary>
/// 获取允许重复的排列组合
/// </summary>
/// <param name="s"> 源字符串</param>
/// <param name="cnt"> 组合位数</param>
/// <returns> 生成结果</returns>
static IEnumerable<string > GetVariations(string s)
{
int[] indexes = new int[s.Length];
StringBuilder sb = new StringBuilder ();
while (IncrementIndexes(indexes, s.Length))
{
sb.Clear();
for ( int i = 0; i < indexes.Length; i++)
{
if (indexes[i] != 0)
{
sb.Append(s[indexes[i] - 1]);
}
}
yield return sb.ToString();
}
}
static bool IncrementIndexes( int[] indexes, int limit)
{
for ( int i = 0; i < indexes.Length; i++)
{
indexes[i]++;
if (indexes[i] > limit)
{
indexes[i] = 1;
}
else
{
return true;
}
}
return false;
}
排列 和 组合的区别
排列是有顺序的,如(a,b,c)和(b,c,a)是不同的,虽然同样是三个字母,但顺序不同。
组合是没有顺序的,如(a,b,c)和(b,c,a)是相同的,只要是同样的字母组合,顺序无所谓。
C# 随机生成字符串
/// <summary>
/// 生成随机纯字母组合
/// </summary>
/// <param name="count"> 位数</param>
/// <returns> 随机码</returns>
private string GetRandomString( int count)
{
int number;
string checkCode = String.Empty; //存放随机码的字符串
System. Random random = new Random( DateTime.Now.Millisecond * 2);
for ( int i = 0; i < count; i++) //产生4位校验码
{
number = random.Next();
number = number % 36;
if (number < 10)
{
number += 48; //数字0-9编码在48-57
}
else
{
number += 55; //字母A-Z编码在65-90
}
checkCode += (( char)number).ToString();
}
return checkCode;
}
/// <summary>
/// 按位数取得随机码(纯数字)
/// </summary>
/// <param name="num"> 位数</param>
/// <returns> 随机码</returns>
public string GetRandomNumber( int num)
{
string str = "";
int seed = Math.Abs((int )BitConverter .ToUInt32(Guid.NewGuid().ToByteArray(), 0));
Random random = new Random(seed);
for ( int i = 0; i < num; i++)
{
str += random.Next(10);
}
return str;
}
/// <summary>
/// 生成随机字母字符串(数字字母混和)
/// </summary>
/// <param name="codeCount"> 待生成的位数 </param>
public string GetRandomCharAndNumber( int codeCount)
{
string str = string.Empty;
int rep = 0;
long num2 = DateTime.Now.Ticks + rep;
rep++;
Random random = new Random((( int)((( ulong)num2) & 0xffffffffL)) | ((int)(num2 >> rep)));
for ( int i = 0; i < codeCount; i++)
{
char ch;
int num = random.Next();
if ((num % 2) == 0)
{
ch = ( char)(0x30 + (( ushort)(num % 10)));
}
else
{
ch = ( char)(0x41 + (( ushort)(num % 0x1a)));
}
str = str + ch.ToString();
}
return str;
}
遇到 .NET Winform 报错,错误信息如下:
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.FileNotFoundException
可能是因为没有把需要的DLL程序集和EXE放到一起引起的。
php fopen打开中文名的文件 :
注意要使用iconv将iconv转码为GBK,当前PHP文档是uft-8编码的。
$file_dir = dirname(__FILE__) . '\\';
$name = iconv ( 'UTF-8', 'GBK', '金科智能VR批量渲染加速系统免费版.rar' ); //从UFT8编码转到GBK编码
$file = fopen($file_dir.$name,"rb");
centos编译安装apache2.4.10 + PHP5.5全记录:
编译安装apache2.4.10
从官方下载(链接需要改版本):
wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.39.tar.gz
wget http://mirror.bit.edu.cn/apache/apr/apr-1.7.0.tar.gz
wget http://mirror.bit.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
解压缩:
tar -xvf httpd-2.4.39.tar.gz
tar -xvf apr-1.7.0.tar.gz
tar -xvf apr-util-1.6.1.tar.gz
一点文件操作:
mv apr-1.7.0 httpd-2.4.39/srclib/apr
mv apr-util-1.6.1 httpd-2.4.39/srclib/apr-util
cd httpd-2.4.39
编译前安装 :
yum install zlib-devel pcre-devel
编译命令:
./configure --prefix=/web/httpd --with-included-apr --enable-nonportable-atomics=yes --with-z
编译完成后:
make
make install
———————————-
wget http://cn2.php.net/distributions/php-5.5.18.tar.bz2
tar -xvf php-5.5.18.tar.bz2
cd php-5.5.18
./configure --prefix=/web/php --with-apxs2=/web/httpd/bin/apxs --enable-cli --enable-shared --with-libxml-dir --with-gd --with-openssl --enable-mbstring --with-mcrypt --with-mysqli --with-mysql --enable-opcache --enable-mysqlnd --enable-zip --with-zlib-dir --with-pdo-mysql --with-jpeg-dir --with-freetype-dir --with-curl --without-pdo-sqlite --without-sqlite3
1G以及1G以下的小内存主机编译PHP时报错,错误信息如下:
make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1
解决办法:在编译条件上加上 --disable-fileinfo
即可。