VC程式設計經驗

2021-04-19 10:54:22 字數 2540 閱讀 7058

276 舉例說明使用c++模板 list 查詢的實現:

先定義struct結構,存放要查詢的資料結構,

typedef struct structa

}structa, *pstructa;

再定義列表,

typedef listtstructlist;

定義查詢的operator class,此處以字串為查詢條件

呼叫語法類似於:

tstructlist::iterator    iter = find_if(列表變數.begin(), 列表變數.end(), bind2nd(cfindfuncbyhandle(), 查詢條件字串));

find_if函式在系統標頭檔案algorithm中定義。

vc下編譯時c與c++環境切換方法:

一,問題描述

error lnk2001: unresolved external symbol _winmain@16

debug/main.exe:fatal error lnk 1120:1 unresolved externals

error executing link.exe;

二,產生這個問題可能的原因

1, 你用vc建了乙個控制台程式,它的入口函式應該是main, 而你使用了winmain.

2.  你用vc開啟了乙個.c/.cpp 檔案,然後直接編譯這個檔案,這個檔案中使用了winmian而不是main作為入口函式。vc這時的預設設定是針對控制台程式的。

三, 解決方法

1.進入project->setting->c/c++, 在category中選擇preprocessor,在processor definitions中刪除_console, 新增_windows

2.進入project->setting->link, 在project options中將 /subsystem:console改為/subsystem:windows.

3.儲存設定,rebuild all.

vs2005中的設定請參考對應項進行設定

四,vs2005中的設定

1.選單中選擇 project->properties, 彈出property pages視窗

2.在左邊欄中依次選擇:configuration properties->c/c++->preprocessor,然後在右邊欄的preprocessor definitions對應的項中刪除_console, 新增_windows.

3.在左邊欄中依次選擇:configuration properties->linker->system,然後在右邊欄的subsystem對應的項改為windows(/subsystem:windows)

4.rebuild all. ok ?

測試:(環境:vs2005,程式語言vc)

// test.c

#i nclude

int apientry winmain(hinstance hinstance,

hinstance hprevinstance,

lpstr     lpcmdline,

int       ncmdshow)

假設把檔案包存為test.c.

3.vs2005建立的工程預設是支援unicode的,我不用這個,所以在選單中選擇 project->properties, 彈出property pages視窗。在左邊欄中依次選擇:configuration properties->general,然後把右邊欄的character set 改為use multi-byte character set.

4.編譯,出現如下錯誤:

msvcrtd.lib(crtexe.obj) : error lnk2019: unresolved external symbol _main referenced in function ___tmaincrtstartup

c:/test/debug/test.exe : fatal error lnk1120: 1 unresolved externals

5.按照上述vs2005中的設定方法進行設定,然後再編譯,錯誤消失了吧!

「error prj0003 : 生成 cmd.exe 時出錯」 完整解決方案

這個是英文版本的(下面的是中文版本的)

tools=> options => projects and solutions -> vc++ directories page

then place below rows:

$(systemroot)/system32

$(systemroot)

$(systemroot)/system32/wbem 

中文版本

確定所謂的「工具」-〉「選項」-> "vc++專案設定"->"解決方案資源管理器模式"裡的「顯示所有檔案」有沒有勾選,只要勾上就會有「專案和解決方案」的選項,在vc++目錄下逐行新增

$(systemroot)/system32

$(systemroot)

$(systemroot)/system32/wbem

就ok了。

VC程式設計經驗彙總 一

1.視窗最大化 最小化的實現 當我們不能用標題欄的最大化 最小化及恢復按鈕而又需在其他的地方實現這些功能,可以在指定的訊息處理函式裡新增 windowplacement wndpl windowplacement pwndpl pwndpl wndpl getwindowplacement pwnd...

VC程式設計經驗彙總 二

6.如何建立可伸縮的對話方塊 在進行對話方塊的設計時,有時候我們需要設計可伸縮的對話方塊,當使用者按下某個按鈕時彈出或隱藏對話方塊的下半部分。1 首先在對話方塊中建立乙個控制項把 id設為 idc divider type 設定為矩形,color 設定為黑色,並將其設定為一線狀,拖放在適當的位置做為...

VC程式設計經驗彙總 一

1.視窗最大化 最小化的實現 當我們不能用標題欄的最大化 最小化及恢復按鈕而又需在其他的地方實現這些功能,可以在指定的訊息處理函式裡新增 windowplacement wndpl windowplacement pwndpl pwndpl wndpl getwindowplacement pwnd...