int WSAStartup( __in WORD wVersionRequested , __out LPWSADATA lpWSAData );
WSAStartup
格 ?? 式: int PASCAL FAR WSAStartup( WORD wVersionRequested,? LPWSADATA lpWSAData );
參 ?? 數: ? wVersionRequested 欲使用的 Windows Sockets API 版本
lpWSAData?? 指向 WSADATA 資料的指標
傳回值: ? 成功 – 0
?? ???????? 失敗 - WSASYSNOTREADY / WSAVERNOTSUPPORTED /??WSAEINVAL
說明: 此函式「必須」是應用程式呼叫到 Windows Sockets DLL 函式中的第一個,也唯有此函式呼叫成功後,才可以再呼叫其他 Windows??Sockets DLL 的函式。此函式亦讓使用者可以指定要使用的 Windows Sockets API 版本,及獲取設計者的一些資訊。程式中我們要用 Winsock 1.1 ,所以我們在程式中有一段為:
WSAStartup((WORD)((1<<8)|1),(LPWSADATA) &WSAData)
其中 ((WORD)((1<<8)|1) 表示我們要用的是 Winsock 「 1.1 」版本,而 WSAData 則是用來儲存由系統傳回的一些有關此一 Winsock Stack 的資料。
The WSAStartup function initiates use of the Winsock DLL by a process. 在使用WSAStartup的使用出現了下面的問題:
源碼:#include? " stdafx.h " #include < windows.h > int ?main() { ????WSADATA?wsa = { 0 }; ????WSAStartup(MAKEWORD( 2 , 2 ), & wsa); ???? ???? return ? 0 ; }
出現的錯誤信息:
錯誤?1?error LNK2019: 無法解析的外部符號 _WSAStartup@8 ,該符號在函數 _main 中被引用?CompletePortDemo.obj?CompletePortDemo
解決方法:添加#pragma?comment(lib,"ws2_32.lib")
正確代碼:
#include? " stdafx.h " #include < windows.h > #pragma????comment(lib, " ws2_32.lib " ) int ?main() { ????WSADATA?wsa = { 0 }; ????WSAStartup(MAKEWORD( 2 , 2 ), & wsa); ???? ???? return ? 0 ; }
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
