在其他的blog看到一些有用的資訊
挺不錯的,轉載過來以後備用囉
來源 最大的小巨人
★ Vc++裡面如何寫程式重開機?
system("shutdown -r -t 0");
★ already defined in ***.obj
這樣的錯誤,有時候直接ignore掉LIBCMTD.lib當然是不行的,因為它是C的library。之所以發生這個問題,是因為MFC的library和C的library相衝突,必須設定它們被link的順序,也就是先nafxcwd.lib再LIBCMTD.lib。但是這二者都是default libraries,所以要怎麼設定它們的順序呢?先把它們分別都ignore掉,再額外將它們加入。也就是說:在Link頁籤上的Ignore Libraries輸入:nafxcwd.lib,libcmtd.lib,再到同一頁籤的Object/library modules輸入:nafxcwd.lib libcmtd.lib。這麼一來,加入它們的順序就成了我們所強迫設定的順序了。
★Mfc使用UNICODE的連結錯誤
msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain @16
Debug/Test.exe : fatal error LNK1120: 1 unresolved externals
可以這樣解決 :
在Project->Settings->Link選項下面選Output, 然後再Entry裡面輸入:wWinMainCRTStartup就可以了.
★ShellExecuteEX 開啟外部程式並關閉它
SHELLEXECUTEINFO sei;
DWORD exitcode;
memset(&sei,0,sizeof(SHELLEXECUTEINFO));
sei.cbSize = sizeof(SHELLEXECUTEINFO);
sei.fMask=SEE_MASK_NOCLOSEPROCESS;
sei.hwnd = NULL;
sei.lpFile = "";
sei.lpParameters = "";
sei.nShow = SW_SHOWNORMAL;
ShellExecuteEx(&sei);
GetExitCodeProcess(sei.hProcess,&exitcode);
if(exitcode==STILL_ACTIVE)
{
TerminateProcess(sei.hProcess,0);
}
這樣可以開啟一個程式 並且關閉它喔
★VC++的三個代號
一.HINSTANCE 執行實體(程式本身)的代號:
1.WINMAIN的宣告裡面就會有這個變數
2. 或者是用 AfxGetHinstance(); 也可以取得
二.HWND 視窗的代號:
1.在視窗程式 CREATEWINDOW的時候回傳得到的
2.DOS下面的Console程式因為沒有CREATEWINDOW建立視窗所以要透過GetConsoleWindow()得到
3. 也可以透過FindWindow()搜尋視窗的標題或者Class名稱得到
三.HDC 裝置內容代號:
1.在視窗程式裡面ONPAINT事件是用BeginPaint()可以取得HDC
2.GETHDC()也可以取得
★在你的 Visual C++ 裡面用語法加入Lib 檔
#pragma comment(lib,"vfw32.lib")
★CString 轉 WCHAR
WCHAR=CT2W(CString);
★型態轉換
int -> CString => CStringval.Format(_T("%d"),intval);
CString -> int => atoi()
CString -> float => atof()
2008年4月27日 星期日
Visual C++
標籤: C/C++
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言