随笔分类 - windows编程
摘要:首先来一个可用的程序,WaitForMultipleObjects会等现成结束后,才会继续走下去。【本例子从msdn官网改造http://msdn.microsoft.com/en-us/library/ms686927(v=vs.85).aspx】#include <windows.h>#include <stdio.h>#define THREADCOUNT 4DWORD WINAPI WriteToDatabase( LPVOID );int main( void ){ HANDLE aThread[THREADCOUNT]; int i; // Create w
阅读全文
摘要:windows下有没有 类似 fork 的函数呢?fork可以从当前 复制所有进程信息都另一个进程,然后两个进程可以执行不同的代码。windows显然没有fork。只有CreateProcess,但是CreateProcess有很多参数:BOOL WINAPI CreateProcess( _In_opt_ LPCTSTR lpApplicationName, _Inout_opt_ LPTSTR lpCommandLine, _In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes, _In_opt_ LPSECU...
阅读全文
摘要:写的一个程序,要从二进制文件中读取,但是我读取到11396字节的时候 fread返回0,其feof(fp)==16百度百科看到: feof(fp)有两个返回值:如果遇到文件结束,函数feof(fp)的值为非零值,否则为0。 EOF是文本文件结束的标志。在文本文件中,数据是以字符的ASCⅡ代码值的形式存放,普通字符的ASCⅡ代码的范围是32到127(十进制),EOF的16进制代码为0x1A(十进制为26),因此可以用EOF作为文件结束标志。 当把数据以二进制形式存放到文件中时,就会有-1值的出现,因此不能采用EOF作为二进制文件的结束标志。为解决这一个问题,ASCI C提供一个feof函数...
阅读全文
摘要:Windows C++ 获取当前文件夹下有几个文件百度下 居然没有。linux下通过:struct dirent **namelist;int total=scandir(dir,&namelist,0,alphasort);for(i=0;i<total;i++){ free(namelist[i]);}free(namelist);//scandir后需要释放空间的!!!!!!!就可以搞定,在windows下没有dirent.h 头文件和实现。难道 这个 也算是 操作系统 相关的?不同操作系统 这么简单一个功能,还要各自实现,而不能 如同 stdio.h一样 全部 都是标准的
阅读全文
摘要:wchar_t 是和 char 平等的地位,即 wchar_t 并非 typedef出来的,是原生的变量。简单的说,它拥有两个字节,和short 占用空间一样。比如:字符串 "我们\n"ANSI 的十六进制为:ce d2 c3 c7 0A 006个字节,其中包括字符串最后的\0Unicode十六进制为:11 62 EC 4E 0A 00 00 008个字节,所有的字符 全部是2个字节,即使字母 数字 都是,当然换行\n 也是0A 00 了。一般 程序中字符串 前面加个 L"" 就表示 是Unicode 字符串了。windows下有一个 宏 _T(&quo
阅读全文
摘要:ArcGIS Engine 10 for crossplatform C++ 程序 使用了多线程,在一个线程中使用 AO 的东西 都没问题。但是 如果在一个线程使用了AO 的license 初始化,在另外一个线程(在 license代码之后开启的线程)直接使用 AO的东西,这样,直接报错,com错误。于是我搜索了下:arcgis Engine C++ 多线程 ,虽然 不报什么希望,因为 ArcEngine 的资料 少之又少。结果看到了下面的文章,两个文章内容一样,前面是转载,但是我先看到的。http://blog.sina.com.cn/s/blog_5f08173901010brv.html
阅读全文
摘要:我以为pthread_win32 完全兼容posix 的pthread呢,结果发现,至少有一个地方不同,pthread_t的类型。posix下pthread_t的类型是:typedef unsigned long int pthread_t;//come from /usr/include/bits/pthread.h//用途:pthread_t用于声明线程ID。//sizeof (pthread_t) =4;而pthread_win32 是:/* * Generic handle type - intended to extend uniqueness beyond * that avail
阅读全文
摘要:只有还没做出来的,没有想不到的。从linux移植到windows的C++程序,肯定要改造下 socket和线程库。某日,突然想到 windows 可以使用pthread库么?搜索,果然有线程的解决方案。1.下载:http://sourceware.org/pthreads-win32/#download直接下载最新的就行,目前是:prebuilt-dll-2-9-1-release.zip 因为是windows平台的,所以下载 .zip 或。exe就行,.exe 就是自解压而已,别无其他。最新版本 没有.exe的下载版本了,其内容和zip的一样。但是 zip和 tar.gz tar.bz2的
阅读全文
摘要:占用。搜索 这个题目,没结果。现在 已经有 leveldbwin 1.2 了。我需要1.5.需要知道如何 编译 leveldb,怎么 修改 port才能支持 windows呢?
阅读全文
摘要:搜索了下,几乎没有此类软件,微软的 VS2010也不支持这个非常实用的功能。其实vs2010下 vc的项目属性,C/c++的命令行中有命令行,前面加个 cl.exe ,后面价格文件名,还有链接的时候 前面价格 link.exe 就可以手动编译了。但是 GUI 的方法毕竟麻烦,其实从vcxproj就可以获得这些参数 和 所有的功能。而且 vcxproj是一个xml文件。只要 将 xml 文件的一些关键信息提取出来,输出到 makefile文件就可以了。需要的库 有 xml需要的知识有 Makefile for nmake 规范这样,就可以写出这样的软件了。目前我在写,,,,等待完成发布。还有一个
阅读全文
摘要:得到的答案 都不好。为什么,因为他们都不知道原理。其实原理很简单,编译器 参数或Makefile添加了宏定义,你才可以这样去判断。比如编译器设置了宏 is_windows,你才能去用。不设置没法用。但是,我敢肯定各种编译器 内置一些宏,比如 MS VC的cl.exe ,LINUX的GNU gcc,在各个平台都会有不同的内置宏的。所以 如果我搜索 "各个编译器 内置宏 操作系统" 少量的答案中 有一个 :C++:编写跨平台程序的关键,C/C++中的内置宏定义分两部分:操作系统判定:Windows: WIN32Linux: linuxSolaris: __sun编译器判定:VC
阅读全文