一些小東西

整理一些小東西,慢慢添加--------------

1、獲取當前平臺時區

// typedef struct _TIME_ZONE_INFORMATION {
// 
// 	LONG Bias;       //以分鐘爲單位
// 
// 	WCHAR StandardName[ 32 ];// 標準時間的名稱
// 
// 	SYSTEMTIME StandardDate;
// 
// 	LONG StandardBias;
// 
// 	WCHAR DaylightName[ 32 ];// 夏令時的名稱
// 
// 	SYSTEMTIME DaylightDate;
// 
// 	LONG DaylightBias;
// 
// } TIME_ZONE_INFORMATION, *PTIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION;

//獲取當前平臺時區
double GetTimeZoneNow() 
{          
	TIME_ZONE_INFORMATION   tzi;  

	GetSystemTime(&tzi.StandardDate);  

	GetTimeZoneInformation(&tzi);  

	double zone = (double)tzi.Bias/ (-60); //時區,如果是中國標準時間則得到8 
	
	cout<<"時區:"<<zone<<endl;

	return zone; 
}


2、vc++出現warningC4819的處理方法

編譯VC++程序的時候出現如下提示警告:

warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss

因爲只是一個warning,不影響正常編譯,所以並沒有引起大家多大的關注。我一開始的時候也是如此。但是後來出現的次數多了,發現這個警告和在程序Debug的時候
無法停在斷點,刷刷刷就過去了根本無法進行Debug。而罪魁禍首就是這個warning,改正了這個warning就能進行Debug了。

下面講述我是怎麼消除這個警告的。

這個警告的意思是:在該文件中有一個或多個字符不是Unicode字符!要求把這個字符變成Unicode字符。

難題:在編譯信息裏並沒有提示是哪個字符,或者是在哪一行裏出現的該字符。查找起來非常的難,甚至是不可能的任務!

我在網絡上找了好多資料都沒有找到解決方法。因爲大家都不注意這個不影響編譯的警告。後來在一個國外的網站上找到了解決的方法。很簡單,這個方法根本不需要知道具體是哪個字符在搗鬼!

解決方法:打開出現warning的文件,Ctrl+A全選,然後在文件菜單:file->advanced save options ,在彈出的選項中選擇新的編碼方式爲:UNICODE codepage 1200 ,點擊確定,問題就解決了。


3、檢測網絡通訊情況

(1)ping某個服務器或者ip:ping ip(域名)

(2)ping端口:telnet ip(域名) 端口

(3)查看本機監聽使用端口情況:netstat -ano


4、VS註釋快捷鍵

註釋:        CTRL+K+C

取消註釋: CTRL+K+U



5、獲取運行路徑

	char szapipath[MAX_PATH];
	memset(szapipath,0,MAX_PATH);
	GetModuleFileNameA(NULL,szapipath,MAX_PATH);//獲取應用程序路徑(帶xxx.exe)

	char szdirpath[MAX_PATH];
	memset(szdirpath,0,MAX_PATH);

	//獲取應用名長度(xxxx.exe)
	int nAppNamelen = 0;
	for(int i = strlen(szapipath);i > 1;i--,nAppNamelen++)
	{
		if(szapipath[i -1] == '\\')
		{
			break;
		}
	}

	strleft(szdirpath,szapipath,strlen(szapipath) - nAppNamelen - 1);//轉換應用路徑(szdirpath不包含應用程序名稱)
	char* strleft(char *dst,char *src, int n)
	{
		char *p = src;
		char *q = dst;
		int len = strlen(src);
		if(n>len) n = len;
		/*p += (len-n);*/   /*從右邊第n個字符開始*/
		while(n--) *(q++) = *(p++);
		*(q++)='\0'; /*有必要嗎?很有必要*/
		return dst;
	}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章