無法解析的外部符號 main,該符號在函式

2021-06-19 23:20:57 字數 882 閱讀 1326

問題1:

無法解析的外部符號_main, 該符號在函式 __tmaincrtstartup 中被引用

這個問題表明你新建的是乙個main型別函式(控制台程式),而你的程式中有視窗程式,顯然是個win32函式,解決方法:

專案-屬性-鏈結器-系統-子系統-把控制台改為windows

問題2:

error c2664:"messageboxw":cannot convert parameter 2 from "char[20]" to "lpcwstr"

問題的原因是字串ansi和unicode編碼的區別,

vc6與vs2003等預設使用ansi編碼,而vs2005預設採用unicode.

簡單的說,ansi用1個位元組表示字元,unicode用2個位元組表示1個字元.

若想要你的**在vs2005中編譯通過,3中方法:

1.可修改編碼選項:專案屬性-->配置屬性-->常規-->字符集-->使用多位元組字符集

2.把你字串定義為寬字串,例如:

------wchar szname[128] ;

------createwindow ( l"這裡為類名",…… ) ; // 這裡l為寬字串巨集定義

3.顯式指定api版本:把wndclass改為wndclassa,把createwindow改為createwindowa。

對於win32中與字串相關的api一般有兩個版本ansi版和unicode版。

例如createwindowa和createwindoww。

通常在使用過程中不顯式指定,如果在vc6中使用createwindow則編譯器就使用a版,如果在vs2005中使用createwindow則編譯器就使用w版。

然而在開發過程中可以顯式指定。

無法解析外部符號

先檢視專案屬性裡附加目錄庫包不包含該檔案 資料夾屬性是不是唯讀 最後可能除錯的配置系統位數不對 函式未宣告或未實現等。最近又碰到了新的無法解析外部符號的問題。我在乙個dll專案中引用了另乙個dll專案的某個類成員函式,但該類並沒有匯出,於是出現無法解析的外部符號問題,載入dll專案只能呼叫其匯出的類...

無法解析的外部符號

在使用vs2008除錯程式的過程中,經常會出現無法解析的外部符號問題,可能的原因有很多種,下面這些是我一年來積累的經驗.僅供參考.考慮可能的原因 0 出現無法解析可能是因為lib檔案不正確,比如64位的編譯配置,結果使用的是32位的lib包.1 只寫了類宣告,但還沒有寫實現類,造成呼叫時無法解析 2...

無法解析的外部符號

在使用vs2008除錯程式的過程中,經常會出現無法解析的外部符號問題,可能的原因有很多種,下面這些是我一年來積累的經驗.僅供參考.考慮可能的原因 0 出現無法解析可能是因為lib檔案不正確,比如64位的編譯配置,結果使用的是32位的lib包.1 只寫了類宣告,但還沒有寫實現類,造成呼叫時無法解析 2...