一、delete 問題
class a{};
void testdelete()
int _tmain(int argc, _tchar* argv)
二、標頭檔案包含 + 類宣告 + 類繼承 + 類互相指向對方 問題
參考設計模式之狀態模式
三、設計模板類,類的定義和實現必須在同一檔案,如果在.h檔案中定義,在.cpp檔案中實現,要使用export關鍵字。
參考設計模式之抽象工廠模式
四、全域性變數使用注意
1、型別在標頭檔案定義
2、變數在在.cpp檔案中定義
3、其他檔案使用,要先宣告一下
五、sprintf使用注意 格式中變數的型別必須是基本型別,如果不是,必須先轉換
ptime->tm_year = it->time.nyear - 1900;
ptime->tm_mon = it->time.nmonth - 1;
ptime->tm_mday = it->time.nday;
ptime->tm_hour = it->time.nhour;
ptime->tm_min = it->time.nmin;
ptime->tm_sec = (int)(it->nmillisec * 0.001);
/*time_t*/long nseconds = (long)mktime(ptime);
memset(sendprice.szdata, 0, sizeof(sendprice.szdata));
sprintf(sendprice.szdata, "agk %ld %.2lf 4000.00 4000.00 4000.00 4000.00", nseconds, it->lfprice);
六、使用多個有繼承關係的動態庫,在"stdafx.h"預編譯頭中包含動態庫的標頭檔案時要先包含基類的,再包含子類的。
#include //#include //派生類動態庫的標頭檔案必須寫在子類的動態庫的標頭檔案之後
#include using namespace pushframework;
#include #include #include #include #include using namespace google;
#include using namespace transactionmessage;
#include
七、堆疊溢位
錯誤:
int ntotallength = 0;
if (littleendian())
else
正確
int ntotallength = 0;
if (littleendian())
else
八、程式中通過動態庫/靜態庫的全域性物件呼叫該物件的成員函式
#pragma once
#include #include "symbos.h"
namespace pushframework
private:
int m_socket;
}; // 在主程式中呼叫動態庫的全域性變數的函式,必須做pushframework_dll宣告
//extern /*pushframework_dll*/ abstractdistributor g_clientfactory;
extern pushframework_dll abstractdistributor g_clientfactory;
}
九、帶引數的建構函式的類的的全域性物件的定義和宣告
定義:
circularqueueg_listservices(500000);
circularqueueg_listagents(500000);
宣告:
extern circularqueueg_listservices;
extern circularqueueg_listagents;
十、取string型別字串的長度
int ntotallength = strlen(szclass) + /*strlen(strpacket.c_str())*/strpacket.length() + 2;
十一、vs2013自身的bug release版本和debug版本問題,工程較大時,執行應該用release版本,除錯看變數值應該用debug版本。
在寫客戶端命令派發機制時遇到過這樣一種情況,debug版本能編譯通過,但執行發生指標指向錯誤,但release版本卻沒問題。
research\serverframe\push_framework\component\component\commanddispatch
在寫protobuf通訊協議時又遇到過一次
十二、使用開源**chartctrl時,報錯:不允許指標指向不完整的類型別
在其他標頭檔案中宣告了該類,並且是其他類的友元函式,但是沒有包含該類的標頭檔案。
void ccharttutorialdlg::income_over_2008()函式
#include "chartaxislabel.h"
#include "chartbarserie.h"
十三、const成員函式只能呼叫const成員函式,非const成員函式既可以呼叫非const成員函式,又可以呼叫const成員函式。
十四、c++標頭檔案中的全域性函式
在c++工程中,全域性函式的定義和實現要分開,否則會報重定義之類的很奇怪的錯誤,這個問題曾經折騰我乙個上午!
寫記事本程式遇到的檔案Bug
file.open szfile,cfile modecreate cfile modewrite cfile typetext cfile modereadwrite cfile modecreate 直接構建建立乙個新檔案。如果該檔案已經存在,則檔案內容自動被清零。cfile modewrite...
寫MFC程式過程中的BUG記錄
關於 wdir 轉 string wdir patt wstring ws patt wchar轉char string str ws.begin ws.end 2.assert valid fails with null pointer 錯誤 原因 此錯誤是由於使用了乙個未經初始化的指標導致。由來...
iview 3 x 使用中遇到的元件bug
1.inputnumber 數字框元件,把最小值設定為0.2時,陣列框禁止點選,其他數字都是正常,官方例子同樣存在問題 2.tree 元件將節點的disablecheckbox屬性設定為true時,反覆點選核取方塊會被勾選,官方例子同樣存在問題 目前我的解決辦法是修改了元件的源 1 handlech...