程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> vnc由TCP改UDP的文檔(1)

vnc由TCP改UDP的文檔(1)

編輯:關於C語言

今天嘗試用enet 來改寫vnc的服務端,使其傳輸協議由原來的TCP協議,改成UDP協議.
編譯沒有什麼問題,但是在link時又出現了問題.如下所示:
host.obj : error LNK2019: 無法解析的外部符號 __imp__htonl@4,該符號在函數 _enet_host_connect 中被引用
win32.obj : error LNK2019: 無法解析的外部符號 __imp__setsockopt@20,該符號在函數 _enet_socket_create 中被引用
win32.obj : error LNK2019: 無法解析的外部符號 __imp__ioctlsocket@12,該符號在函數 _enet_socket_create 中被引用
。。。。。。。。。。。。。。。。。
win32.obj : error LNK2019: 無法解析的外部符號 __imp__WSARecvFrom@36,該符號在函數 _enet_socket_receive 中被引用
win32.obj : error LNK2019: 無法解析的外部符號 ___WSAFDIsSet@8,該符號在函數 _enet_socket_wait 中被引用
win32.obj : error LNK2019: 無法解析的外部符號 __imp__select@20,該符號在函數 _enet_socket_wait 中被引用
.\Release\enet.dll : fatal error LNK1120: 26 個無法解析的外部命令
生成日志保存在“file://c:\Documents and Settings\juwen\桌面\UltraVNC\winvnc\enet\Release\BuildLog.htm”
enet - 33 個錯誤,0 個警告
------ 已啟動生成: 項目: authSSP, 配置: Release Win32 ------
Create Buildtime for VERSIONINFO
buildtime.in
正在編譯資源...
正在鏈接...
正在創建庫 .\..\..\Release/authSSP.lib 和對象 .\..\..\Release/authSSP.exp
正在嵌入清單...
生成日志保存在“file://c:\Documents and Settings\juwen\桌面\UltraVNC\winvnc\Release\BuildLog.htm”
authSSP - 0 個錯誤,0 個警告
------ 已啟動生成: 項目: winvnc, 配置: Release Win32 ------
正在執行預鏈接事件...
buildtime.cpp
正在鏈接...
enet.lib(win32.obj) : error LNK2019: 無法解析的外部符號 __imp__WSASendTo@36,該符號在函數 _enet_socket_send 中被引用
enet.lib(win32.obj) : error LNK2019: 無法解析的外部符號 __imp__WSARecvFrom@36,該符號在函數 _enet_socket_receive 中被引用
.\..\Release/winvnc.exe : fatal error LNK1120: 2 個無法解析的外部命令

其中__imq__WSASendTo@36這類的問題是由於沒有加載需要用到的庫文件所引起的,解決方法可以在文件裡加入
#i nclude <winsock2.h>
#pragma comment(lib,"ws2_32.lib")
或者
Project->Settings->Link標簽->Object/Library Moduls: 後面添加 ws2_32.lib 

加入後問題解決了一些.出現錯誤如下:
win32.obj : error LNK2019: 無法解析的外部符號 __imp__timeBeginPeriod@4,該符號在函數 _enet_initialize 中被引用
win32.obj : error LNK2019: 無法解析的外部符號 __imp__timeEndPeriod@4,該符號在函數 _enet_deinitialize 中被引用
win32.obj : error LNK2019: 無法解析的外部符號 __imp__timeGetTime@0,該符號在函數 _enet_time_get 中被引用
.\Release\enet.dll : fatal error LNK1120: 3 個無法解析的外部命令

只要是幾個時間函數的問題,我猜需要加入另外的庫.上網找了一下.果然不出所料,往文件中加入
#pragma comment( lib, "winmm" )
或者
Project->Settings->Link標簽->Object/Library Moduls: 後面添加 winmm.lib


OK了,又花了好長時間解決一個簡單的問題!郁悶! 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved