当前位置:  编程技术>c/c++/嵌入式
本页文章导读:
    ▪Windows API 逐个逐个学(3)----Windows系统基本服务API GetSystemDirectory      贴代码VC++ code: 1 /* ************************************ 2 *《精通Windows API》 3 * 示例代码 4 * basic.c 5 * 2.2 Windows API的功能分类 6 **************************************/ 7 8 /* 头文件 */ 9 #include <windows.h>10 1.........
    ▪[zlib]使用Intel PPL来提zlib高性能      服务器经常会用到压缩,zlib是默认选择,虽然还有很多其他的快速压缩算法,比如snappy和lz4.可是zlib拥有最广泛的支持和良好的压缩率,就是速度太不理想了.intel有一个高性能库ppl,期中包含zlib的优.........
    ▪分离浮点数的整数和小数部分           问题描述:如何将获取一个浮点数的整数部分以及小数部分 方法一: 1 #include <iostream> 2 using namespace std; 3 4 void main() 5 { 6 float f = -23.04f; 7 int i = f; 8 float .........

[1]Windows API 逐个逐个学(3)----Windows系统基本服务API GetSystemDirectory
    来源:    发布时间: 2013-10-17

贴代码

VC++ code:

1 /* ************************************
2 *《精通Windows API》
3 * 示例代码
4 * basic.c
5 * 2.2 Windows API的功能分类
6 **************************************/
7
8 /* 头文件 */
9 #include <windows.h>
10
11 /* ************************************
12 * 功能 获取系统目录信息,并存储到文件中
13 **************************************/
14 int main1(int argc, TCHAR argv[])
15 {
16 //文件句柄
17 HANDLE hFile;
18
19 DWORD dwWritten;
20 //字符数组,用于存储系统目录
21 TCHAR szSystemDir[MAX_PATH];
22 //获取系统目录
23 GetSystemDirectory(szSystemDir,MAX_PATH);
24
25 //创建文件systemroot.txt
26 hFile = CreateFile("systemroot.txt",
27 GENERIC_WRITE,
28 0,NULL,CREATE_ALWAYS,
29 FILE_ATTRIBUTE_NORMAL,
30 NULL);
31 //判断文件是否创建成功
32 if(hFile != INVALID_HANDLE_VALUE)
33 {
34 //将系统目录系统信息写入文件
35 if(!WriteFile(hFile,szSystemDir,lstrlen(szSystemDir),&dwWritten,NULL))
36 {
37 return GetLastError();
38 }
39 }
40 //关闭文件,返回。
41 CloseHandle(hFile);
42 return 0;
43 }

 VB6 code:

1 Public Function GetSysDirectory() As String
2 '取得系统目录
3 Dim strSysDir As String, filePath As String
4 filePath = App.Path & "\systemroot.txt"
5
6 strSysDir = Space(200)
7 Call GetSystemDirectory(strSysDir, 200)
8 strSysDir = left(strSysDir, InStr(strSysDir, Chr(0)) - 1)
9
10 Open filePath For Output As #1
11 Print #1, strSysDir
12 Close #1
13 End Function

运行结果:

在当前目录下会生成systemroot.txt.

 

 

本文链接


    
[2][zlib]使用Intel PPL来提zlib高性能
    来源:    发布时间: 2013-10-17

服务器经常会用到压缩,zlib是默认选择,虽然还有很多其他的快速压缩算法,比如snappy和lz4.可是zlib拥有最广泛的支持和良好的压缩率,就是速度太不理想了.

intel有一个高性能库ppl,期中包含zlib的优化.使用方式比较简单,就是链接一下就OK,性能大约可以提升30%左右.

我把ppl装到/usr/local/ppl下面,所以有可能会需要添加include路径,看你需要初始化CPU么.

include目录/usr/local/ipp/ipp/include

然后是静态库/动态库目录:

/usr/local/ipp/composer_xe_2013.1.117/ipp/lib/intel64

/usr/local/ipp/composer_xe_2013.1.117/ipp/interfaces/data-compression/ipp_zlib/bin/intel64

再然后是链接,因为ppl的zlib和zlib兼容,所以头文件可以用zlib的,

依次链接ipp_z,ippdc_l,ipps_l,ippcore_l这几个库

如果是动态链接的话,去掉_l就可以了.

 

lz4的速度不错,也可以考虑一下 http://code.google.com/p/lz4/

PS:

Intel的PPL库,不贵,如果是商业使用,请支持正版.

非商业的话,可以申请一个免费的License.

本文链接


    
[3]分离浮点数的整数和小数部分
    来源:    发布时间: 2013-10-17

     问题描述:如何将获取一个浮点数的整数部分以及小数部分

 
方法一:
1 #include <iostream>
2 using namespace std;
3
4 void main()
5 {
6 float f = -23.04f;
7 int i = f;
8 float ff = f - i;
9
10 cout << "i=" << i << ", ff=" << ff << endl;
11 }

output:

i=-23, ff=-0.0400009
 
缺点:不能够精确小数的位数,因为小数部分是由差求得,会丢失部分精度。
 
方法二:
 
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
 
void main()
{
     float f = -23.04f;     
     int i = 0;
     float ff = 0.0f;
 
     stringstream ss;
     ss << f;
     ss >> i >> ff;
     cout << "i=" << i << ", ff=" << ff << endl;
}
 
output:
i=-23, ff=0.04
缺点:小数部分无法获取浮点数的正负号
 
方法三:
void FloatData(float f)
{
     float    fp = f;
     unsigned char *p = ( unsigned char *)&fp;
     int        nSign = 1;
 
     /*符号位*/
     if(*(p+ 3) & 0x80) /*获取最高位,如果是1则为负*/
     {
           nSign = - 1;

    
最新技术文章:
▪C++单例模式应用实例
▪C++设计模式之迭代器模式
▪C++实现动态分配const对象实例
▪C++设计模式之中介者模式
▪C++设计模式之备忘录模式
▪C++插入排序算法实例
▪C++冒泡排序算法实例
▪C++选择排序算法实例
▪C++归并排序算法实例
▪C++设计模式之观察者模式
▪C++中复制构造函数和重载赋值操作符总结
▪C++设计模式之状态模式
▪C++设计模式之策略模式
▪C++设计模式之访问者模式
▪C++设计模式之模板方法模式
▪C++实现下载的代码
▪C++模板之特化与偏特化详解
▪C++实现查壳程序代码实例
▪C语言、C++内存对齐问题详解
▪C语言、C++中的union用法总结
▪C++基于CreateToolhelp32Snapshot获取系统进程实例
▪C++中memcpy和memmove的区别总结
▪C++通过TerminateProess结束进程实例
▪C++内存查找实例
▪C++实现CreatThread函数主线程与工作线程交互的...
▪C++设计模式之桥接模式
▪C++中关键字Struct和Class的区别
▪C++设计模式之组合模式
▪C++ COM编程之什么是组件?
▪C++ COM编程之什么是接口?
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3