畢業設計中用到的一些

1、如何設置全局變量/函數

(1)定義一個Global.h,內包含

 

#pragma once
#include "OraEnv.h"

extern OraEnv Glob_OraEnv;      //全局變量

#define  SQL_MAXLEN 1024       //全局宏定義

extern double GetTime();          //全局函數

 

(2)定義Global.cpp,內涵

#pragma once
#include "stdafx.h"
#include "Globs.h"

OraEnv Glob_OraEnv;               //全局變量

double GetTime()                      //全局函數
{

       .....
 
}

 

2、獲取系統時間

(1)GetTickCount()函數,但是它通常只能精確到10ms。

(2)自己寫

double GetTime()
{
      static __int64 nTimeCount = 0;
      static __int64 nFrequency = 0;


      QueryPerformanceCounter((LARGE_INTEGER*)&nTimeCount);     //計算機從工作開始來計數次數。
      QueryPerformanceFrequency((LARGE_INTEGER*)&nFrequency);  //每秒計數次數。

      return (double)nTimeCount/(double)nFrequency;
}

 

3、GetDlgItem(ID號)返回CWind*,用於操縱該ID對應的控件,當然也可以直接給該控件定義變量。

 

4、字符串轉換

//注意,這些轉換好像對char*字符串裏包含中文的失效。
(1)CString 轉化成 WCHAR*, 其實二者都是每一個字符佔2個字節,但是不能通過wcDir = m_strPath來完成
WCHAR* wcDir = NULL;
wcDir = m_strPath.GetBuffer(m_strPath.GetLength());

 

(2)CString 轉化成char*
size_t convertedChars = 0;
size_t strConcatsize = (m_strPath.GetLength() + 1)*2;
char *cDir = new char[strConcatsize];
memset(cDir, 0, strConcatsize);
wcstombs_s(&convertedChars, cDir, strConcatsize, m_strPath, _TRUNCATE);

 

(3)char*轉變成wchar_t*
size_t newsize = strlen(char*(cCount)) + 1;
wchar_t * wcstring = new wchar_t[newsize];
size_t convertedChars = 0;
mbstowcs_s(&convertedChars, wcstring, newsize, cCount, _TRUNCATE);

 

(4) wchar*轉變成char*

 

char* WcharStringToCharString(wchar_t* wcOrigin)

{

size_t origsize = wcslen(wcOrigin) + 1;

size_t convertedChars = 0;

char strConcat[] = " (char *)";

size_t strConcatsize = (strlen(strConcat) + 1)*2;

const size_t newsize = origsize*2;

char *nstring = new char[newsize+strConcatsize];

wcstombs_s(&convertedChars, nstring, newsize, wcOrigin, _TRUNCATE);

_mbscat_s((unsigned char*)nstring, newsize+strConcatsize, (unsigned char*)strConcat);

return nstring;

}

 

 

(5)將wchar* 轉變爲CString

CString szFolderPath(wcstring);


5、CListCtrl的初始化在它隸屬的Dialog的OnInitDialog()裏邊。

m_ListCtrl.ModifyStyle(NULL, LVS_REPORT);
m_ListCtrl.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_CHECKBOXES);

 

6、非模態對話框的顯示與隱藏

butFtpConn = (CButton*)GetDlgItem(IDC_FTP_DISCONN_SEL);
butFtpConn->ShowWindow(SW_HIDE);

 

7、memset(errbuf, 0, ERRINFO_MAX_LEN); 第3個參數是字節數,如果申請的是WCHAR*,則相應地應當變成兩倍。

 

8、

發佈了13 篇原創文章 · 獲贊 5 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章