1.2 關鍵詞所帶來的差異(A Keyword Distinction)
這段看得不是很明白,感覺
struct CA
{
...
}
和
class
{
public:
...
}
是一樣的.
re: 一個type2id的程序 橙子 2008-03-08 22:28
可有看過《C++設計新思維》 ?
里面有一章Typtlist,專門講這個。你這個看起來很高深。
re: 讀后感:Doom啟世錄 橙子 2006-08-23 17:58
能給我發一個嗎? 我找了好久沒找到.
謝謝!
eyeonme@gmail.com
re: 小學喜歡的女孩 橙子 2006-04-13 14:02
早幾天在同學錄上看到她的相片,也沒經過她的同意就轉過來了. :)
hnhls99 .幸會幸會
re: 讀vnc代碼 橙子 2006-04-03 10:36
VNC的確是個好東東。 :)
去年在嘗試把它改成UDP協議(可穿墻),后來因為別的事情擔擱了。
希望與你繼續討論。
re: C++實現簡單的類型庫 橙子 2006-01-23 09:40
// .h
class DynamicFnBase {
public:
DynamicFnBase(const TCHAR* dllName, const TCHAR* fnName);
~DynamicFnBase();
bool isValid() const {return fnPtr != 0;}
protected:
void* fnPtr;
HMODULE dllHandle;
private:
DynamicFnBase(const DynamicFnBase&);
DynamicFnBase operator=(const DynamicFnBase&);
};
template<class T> class DynamicFn : public DynamicFnBase {
public:
DynamicFn(const TCHAR* dllName, const char* fnName) : DynamicFnBase(dllName, fnName) {}
T operator *() const {return (T)fnPtr;};
};
//---------------------------------------------------------------------------------
// .cpp
DynamicFnBase::DynamicFnBase(const TCHAR* dllName, const TCHAR* fnName) : dllHandle(0), fnPtr(0) {
TCHAR outinfo[500];
dllHandle = LoadLibrary(dllName);
if (!dllHandle) {
_stprintf(outinfo,_T("DLL %s not found (%d)"), dllName, GetLastError());
MessageBox(NULL,outinfo,_T("Dll Error"),0);
return;
}
fnPtr = GetProcAddress(dllHandle, fnName);
if (!fnPtr)
{
_stprintf(outinfo,_T("proc %s not found in %s (%d)"), fnName, dllName, GetLastError());
MessageBox(NULL,outinfo,_T("Dll Error"),0);
}
}
DynamicFnBase::~DynamicFnBase() {
if (dllHandle)
FreeLibrary(dllHandle);
}
//--------------------------------------------------------------------------------------
// test
typedef void (*WM_Hooks_proto)(UINT min, UINT max);
DynamicFn<WM_Hooks_proto> WM_Hooks(_T("hook.dll"), "WM_Hooks");
//--------------------------------------------------------------------------------------