在InstallShield中引用WINSOCK 的示例 (轉)
/* 轉載請註明出處和保留此版權資訊 */
/* 歡迎使用SiteManager網站管理 /" target=_blank>; */
透過以下示例,InstallShield可以用WINSOCK獲取,可將以下儲存為tcpip.rul
#define WSADESCRIPTION_LEN 256
#define WYS_STATUS_LEN 128
typedef
WSAData
begin
INT wVersion;
INT wHighVersion;
char szDescription[WSADESCRIPTION_LEN+1];
char szSystemStatus[WSASYS_STATUS_LEN+1];
short iMaxSockets;
short iMaxUdpDg;
POINTER lpVendorInfo;
end;
WSAData structWSAData;
WSAData POINTER pWSAData;
typedef HostEnt
begin
POINTER ph_name;
POINTER ph_aliases;
short h_addrtype;
short h_length;
POINTER ph_addr_list;
end;
HostEnt structHostEnt;
HostEnt POINTER pHostEnt;
SHORT nlen;
NUMBER nIPNetAddr;
NUMBER nVersion;
STRING szMsg;
STRING szDefault;
STRING szURL;
STRING szPath;
NUMBER nRC;
NUMBER nRC2;
STRING szHostName;
STRING szMYIPAddr;
POINTER pWinSockReturn;
typedef IPName
begin
STRING szIPAddr[100];
end;
IPName LocalIPName;
IPName POINTER pLocalIPName;
typedef IPAddrList
begin
POINTER pIPAddr;
end;
IPAddrList structIPAddrList;
IPAddrList POINTER pIPAddrList;
typedef IPAddPtr
begin
LONG nIPAddr;
end;
IPAddPtr structIPAddPtr;
IPAddPtr POINTER pIPAddPtr;
POINTER pIN_Addr_Struct;
POINTER wsock32.gethostbyname(BYREF STRING);
prototype POINTER wsock32.gethostname(BYREF STRING, NUMBER);
prototype POINTER wsock32.WSAStartup(INT, POINTER);
prototype POINTER wsock32.inet_ntoa( NUMBER);
prototype POINTER wsock32.WSACleanup();
prototype int wsock32.WSAGetLastError ( );
program
pWSAData = &structWSAData;
nRC = UseDLL ("wsock32.dll");
pWSAData -> wHighVersion = 1;
pWSAData -> wVersion = 1;
nVersion = 0x02000002; // 0x01000001
pWinSockReturn = WSAStartup(nVersion, pWSAData);
pWinSockReturn = gethostname(szHostName,100);
pHostEnt = gethostbyname(szHostName);
nlen = pHostEnt -> h_length;
pIPAddPtr = pHostEnt -> ph_addr_list;
pIPAddPtr = *pIPAddPtr;
nIPNetAddr = *pIPAddPtr;
// nIPNetAddr = pIPAddPtr -> nIPAddr;
pLocalIPName = inet_ntoa( nIPNetAddr );
szMYIPAddr = pLocalIPName -> szIPAddr;
MessageBox(szMYIPAddr, INFORMATION);
WSACleanup();
exit;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-984522/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在InstallShield中透過主機名獲取IP地址 (轉)
- webpack的alias別名引用 在webstorm中點選不能跳轉?WebORM
- Winsock程式設計框架 (轉)程式設計框架
- Winsock程式設計初步之<一> Winsock程式設計原理 (轉)程式設計
- 在POWERBUILDER中使用WINSOCK控制元件的方法UI控制元件
- Java中的四種引用方式(強引用、軟引用、弱引用、虛引用)Java
- Java/Android中的強引用、軟引用、弱引用、虛引用JavaAndroid
- 用pascal寫的最簡單的winsock程式 (轉)
- InstallShield 隱藏密碼輸入 (轉)密碼
- Java中的引用Java
- Vue.js 元件 – 元件間的迴圈引用示例Vue.js元件
- 將Excel中的資料匯入至MsSQLSERVER中(示例) (轉)ExcelSQLServer
- TCP/IP Winsock程式設計要點(轉)TCP程式設計
- Winsock錯誤程式碼一覽表 (轉)
- java中的引用物件Java物件
- Java中的弱引用Java
- Java 中的方法引用Java
- js在html裡的引用方法JSHTML
- LR中winsock相關函式彙總函式
- [轉載] .NET 中可以有類似 JVM 的幻像引用嗎?JVM
- C++11 中的右值引用與轉移語義C++
- 在 C 中引用匯編語言定義的 .globl 變數變數
- JavaScript 值型別和引用型別在堆疊中的存放JavaScript型別
- Server Strategies -- Programming High Performance WinSock Server (轉)ServerORM
- Java常見知識點彙總(⑲)——Java中的強引用、弱引用、軟引用、虛引用Java
- 理解Java中的弱引用Java
- Installshield2010 實現web部署和資料庫安裝示例Web資料庫
- 在winnt/win9x下用blat發email的示例(轉)AI
- 第四章 Vlookup函式示例-相對引用還是絕對引用函式
- WinSock基礎
- JavaScript引用物件的途徑(轉)JavaScript物件
- InstallShield自定義對話方塊模板程式碼(轉)
- InstallShield自定義對話方塊淺談(三) (轉)
- InstallShield自定義對話方塊淺談(四) (轉)
- InstallShield自定義對話方塊淺談(五) (轉)
- 在 Node.js 中看 JavaScript 的引用Node.jsJavaScript
- java中的引用與c中的指標Java指標
- Domino COM的HTML示例 (轉)HTML