每個使用者的profile中 都會有一個暫存的目錄 我們可以放暫存檔在裡面
暫存檔的目錄除了可以在系統登錄(registry)中找到 也可用GetTempPath()來取得
window系統也提供GetTempFileName() 來簡單的取得暫存檔名字
以下為使用範例
CString tpath;
freestyler 發表在 痞客邦 留言(0) 人氣(347)
Char 轉成 TCHAR的辦法
// ANSI(char) to Unicode(TCHAR)
char* temp = "測試";
int nIndex = MultiByteToWideChar(CP_ACP, 0, temp , -1, NULL, 0);
TCHAR *pUnicode = new TCHAR[nIndex + 1];
freestyler 發表在 痞客邦 留言(0) 人氣(469)
●為什麼要用不定參數寫Log API ?
每次在寫 Log 之前就要宣告一個字串,再用 sprintf 或 Format 來處理,實在不方便,還要去控制字串的宣告位置、次數,多次寫Log的位置都有相同的宣告,程式碼也變得難閱讀。
不如直接將 Format 參數帶入 API,再由 Log API 來處理字串,是更好的方法。
●做法說明
// 以下為資料來源與參考資料文章(Copy & Paste)
http://blog.yam.com/csylvia/article/17973254
freestyler 發表在 痞客邦 留言(0) 人氣(1,113)
C/C++ 的volatile
C/C++中的volatile使用時機?
.不知各位對volatile(揮發性的)這個字陌不陌生? 我相信大家在一些程式或多或少都看
過這個字眼, 但是究竟要在何種場合用它呢?
.當然一定是有需要, C/C++才會有這個保留字, 否則只是增加programmer的困擾而已
.有2兩個場合(I/O & multithread program), 供各位參考!
.請大家check自己的程式中(尤其是第2個場合), 若有的話請記得加上volatile
freestyler 發表在 痞客邦 留言(19) 人氣(72,925)
[轉錄] "開機" 萬言書
作者:吳翠鳳 (Linda Wu)
http://www.msservermag.com.tw/technicwords/020919.aspx
http://www.msservermag.com.tw/technicwords/020926.aspx
freestyler 發表在 痞客邦 留言(0) 人氣(533)
簡單的說,如果你使用了某個function,那麼你就是call了一個function。如果系統或是函式是要求你給一個function pointer,這個function pointer指到一個實際的函式(多半這個函式是你自己寫的)。然後它會在適當的時間呼叫此function,則此function就是所謂的 callback function。因為這個function是被callback了。
範例:
freestyler 發表在 痞客邦 留言(0) 人氣(18,315)
sqlite官網
在VC++上的使用方法:
1.下載http://www.sqlite.org/sqlitedll-3_6_12.zip
2.壓縮檔內有sqlite3.dll和sqlite3.def,在命命列下利用LIB生成用於連結(LINK)的lib文件:sqlite3.lib和sqlite3.exp
freestyler 發表在 痞客邦 留言(0) 人氣(621)
MFC中PreTranslateMessage是GetMessage(...)函数的下一级操作,即GetMessage(...)从消息队列中获取消息后,交由PreTranslateMessage()处理,若其返回FALSE则再交给TranslateMessage和 DispatchMessage处理(进入WindowProc);
如果用SendMessage, 则消息直接交到WindowProc处理,所以GetMessage不会取得SendMessage的消息,当然PreTranslateMessage也就不会被调用。
如果用PostMessage,则消息进入消息队列,由GetMessage取得,PreTranslateMessage就有机会进行处理。
freestyler 發表在 痞客邦 留言(0) 人氣(784)
(1) 如何建立自动增长字段?
简短回答:声明为 INTEGER PRIMARY KEY 的列将会自动增长。
长一点的答案: 如果你声明表的一列为 INTEGER PRIMARY KEY,那么, 每当你在该列上插入一NULL值时, NULL自动被转换为一个比该列中最大值大1的一个整数,如果表是空的, 将会是1。 (如果是最大可能的主键 9223372036854775807,那个,将键值将是随机未使用的数。) 如,有下列表:
CREATE TABLE t1(
a INTEGER PRIMARY KEY,
b INTEGER
);
freestyler 發表在 痞客邦 留言(0) 人氣(998)
//------------------------------------------
bool RssTreeView::LoadXmlToTree(LPCWSTR xmlFileName)
{
if(PathFileExists(xmlFileName) == TRUE)
{
if ( SUCCEEDED(CoInitialize(NULL)) )
{
MSXML2::IXMLDOMDocument *pDoc;
if ( SUCCEEDED (CoCreateInstance(MSXML2::CLSID_DOMDocument,
NULL,
CLSCTX_INPROC_SERVER,
MSXML2::IID_IXMLDOMDocument,
reinterpret_cast<void**>(&pDoc))))
{
//
// Tell the "doc" that we're not going to load asynchronously.
//
if ( SUCCEEDED(pDoc->put_async(VARIANT_FALSE)) )
{
CComVariant vFile(RssDefaultNewsPath);
VARIANT_BOOL vBool;
pDoc->load(vFile,&vBool);
if ( vBool == VARIANT_TRUE )
{
MSXML2::IXMLDOMNodePtr pRootNode;
pDoc->selectSingleNode(_T("root"), &pRootNode); //取得根節點
if(pRootNode == NULL)
return false;
freestyler 發表在 痞客邦 留言(0) 人氣(167)