InitializeCriticalSectionAndSpinCount

InitializeCriticalSectionAndSpinCount
The InitializeCriticalSectionAndSpinCount function initializes a critical section object and sets the spin count for the critical section. BOOL InitializeCriticalSectionAndSpinCount( LPCRITICAL_SECTION lpCriticalSection, // pointer to critical section DWORD dwSpinCount   // spin count for critical section );SetCriticalSectionSpinCountThe SetCriticalSectionSpinCount function ...

多线程还是多进程

多线程还是多进程
多线程和多进程的优缺点比较,图片来源互联网,原地址无从考究。如果程序大量且频繁进行调度,c/c++程序员之家建议试用多线程的方式。因为教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”。实际使用中,可以根据大量实例进行测试。 多线程还是多进程

屏蔽Windows控制台程序窗口

屏蔽Windows控制台程序窗口
问题:屏蔽Windows控制台程序窗口,因为有的时候并不需要交互。 方法:加上一句话即可:#pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup") 解释:众所周知,控制台应用程序一般都会显示一个控制台窗口(虚拟DOS窗口),但很多时候控制台程序的执行逻辑根本不需要与用户进行交互,所以显示这个难看的窗口纯属多余,那么如何将它屏蔽掉呢?下面我向大家介绍一种方法。 操作系统装载应用...

CHttpFile抓取网页源代码

CHttpFile抓取网页源代码
发现MFC真是一个好东西,减少许多C++开发者造轮子的麻烦(说MFC-微软基础类库过时的勿喷)。如下,包含头文件afxinet.h(该类封装了一些MFC SOCKET的操作)。CHttpFile抓取网页源代码: [cpp]CInternetSession session("HttpClient"); char * url = "https://www.cplusplus.me"; CHttpFile* pfile = (CHttpFile *)session.OpenURL(url); DWORD dwStatusCode; pfile -> QueryInfoStatusCode(dwStatusCod...

getaddrinfo函数用法示例

getaddrinfo函数用法示例
上篇文章介绍了getaddrinfo替代gethostbyname 由域名获取IP的情况,本篇文章详细介绍getaddrinfo的用法。 其用法简单使用演示如下。windows下包含头文件#include <ws2tcpip.h>,Linux包含头文件#include<netdb.h>。另外最重要的是hints参数的设置,详细参数说明可以参照百度百科,MSDN等等。 [cpp]#include "stdafx.h" #include #include #include #pragma comment (lib, "Ws2_32.lib") in...

gethostbyname替代getaddrinfo

gethostbyname替代getaddrinfo
项目需要从域名解析地址,但是编译的时候提示gethostbyname error,百度了一下,这才发现,原来用了N年的gethostbyname 已经是obsolete 的函数了,都标记成DEPRECATED 了,无论是windows 下还是linux 下都建议使用getaddrinfo 来替代它。很好的总结经验: gethostbyname函数的原型如下: [cpp]struct hostent* FAR gethostbyname( _In_ const char *name );[/cpp] 之前使用gethostbyname 很简单,类似这...

C++读取Excel文档(CSV)

C++读取Excel文档(CSV)
C++直接读取Excel文档比较麻烦,这里用了一直取巧的方式(因为紧紧是处理一些URL)。首先把.xls格式另存为.csv格式,然后就可以直接读取文件了。 Excel文档形式如下: csv C++代码如下: int main(int argc,char *argv[]) { cout<<"code by cplusplus.me..."<<endl; ifstream fin("ExcelScreenShot.csv"); string line; string linkURL; string fromlinkURL; if (fin.is_open()) ...

解决#define _AFXDLL or do not use

解决#define _AFXDLL or do not use
这个问题经常出现在尝试使用Visual Studio 较高版本(2008,2010)编辑较低版本(Visual C++ 6.0)时使用“在静态库中使用MFC”的情况。在·在网上查找方法,无非是“改成在共享DLL中使用MFC”,或者将#include <afx.h>改成<atlstr.h>等方法。笔者未尝试过第二种方法,但是第一种倒是确实好用。第二种不推荐,因为如果使用了afx.h中的函数和变量,atlstr.h没有怎么办? 解决方案:项目属性(Alt+F7)...

用setsockopt()来控制recv()与send()的超时

用setsockopt()来控制recv()与send()的超时
在send(),recv()过程中有时由于网络状况等原因,收发不能预期进行,而设置收发超时控制: 在Linux下需要注意的是时间的控制结构是struct timeval而并不是某一整型数,以下是来自于网上一篇文章中的摘录,它是这样写的: int nNetTimeout=1000;//1秒, //设置发送超时 setsockopt(socket,SOL_SOCKET,SO_SNDTIMEO,(char *)&nNetTimeout,sizeof(int)); //设置接收超时 setsockopt(socket,SOL_SOCKET,...

CreateProcess函数

CreateProcess函数
CreateProcess 说明:WIN32API函数CreateProcess用来创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件。 具体使用方法,自行查找MSDN。 通过CreateProcess函数创建进程,并获取进程PID(By: cplusplus.me)。 [cpp]CString getPID(CString processname,CString parameters) { TCHAR awExecuteFile[1024]; PROCESS_INFORMATION pi; STARTUPINFO si = { sizeof(STARTUPINFO),...
Copyright © C/C++程序员之家 保留所有权利.   Theme  Ality 浙ICP备15011757号-3

用户登录