现在的位置: 首页 > 综合 > 正文

TightVNC 2.0.4在VC2010下的编译

2018年04月10日 ⁄ 综合 ⁄ 共 2614字 ⁄ 字号 评论关闭

TightVNC 2.0.4在VC2010下的编译

TightVNC 2.0.4版本由服务端tvnserver-2.0.4和客户端tvnviewer-1.5.4组成。可从http://www.tightvnc.com/download.php获取源码。本文介绍在vc2010下编译TightVNC2.0.04。

 

编译服务端tvnserver-2.0.4

 

修改desktop-ipc工程,排除IpcServer.cpp文件。

因为desktop-ipc工程包含了一个不存在的文件IpcServer.cpp,直接编译会提示找不到IpcServer.cpp文件,因此需要从工程中排除此文件。右键选择该文件,在在弹出菜单中选择Properties,弹出属性对话框,在Configuration Properties/General选项卡中,修改Exclude From Build的值为yes,默认为No。

 

修改win-system工程,添加文件PipeImpersonatedThread.cpp,否则在连接tvnserver时会出现如下link错误:

1>------ Build started: Project: tvnserver, Configuration: Debug Win32 ------

1>win-system.lib(WTS.obj) : error LNK2019: unresolved external symbol "public: virtual __thiscall PipeImpersonatedThread::~PipeImpersonatedThread(void)" (??1PipeImpersonatedThread@@UAE@XZ) referenced in function __catch$?duplicatePipeClientToken@WTS@@SAXPAX@Z$0

1>win-system.lib(WTS.obj) : error LNK2019: unresolved external symbol "public: void __thiscall PipeImpersonatedThread::getFaultReason(class StringStorage *)" (?getFaultReason@PipeImpersonatedThread@@QAEXPAVStringStorage@@@Z) referenced in function
"public: static void __cdecl WTS::duplicatePipeClientToken(void *)" (?duplicatePipeClientToken@WTS@@SAXPAX@Z)

1>win-system.lib(WTS.obj) : error LNK2019: unresolved external symbol "public: bool __thiscall PipeImpersonatedThread::getImpersonationSuccess(void)" (?getImpersonationSuccess@PipeImpersonatedThread@@QAE_NXZ) referenced in function "public:
static void __cdecl WTS::duplicatePipeClientToken(void *)" (?duplicatePipeClientToken@WTS@@SAXPAX@Z)

1>win-system.lib(WTS.obj) : error LNK2019: unresolved external symbol "public: void __thiscall PipeImpersonatedThread::waitUntilImpersonated(void)" (?waitUntilImpersonated@PipeImpersonatedThread@@QAEXXZ) referenced in function "public: static
void __cdecl WTS::duplicatePipeClientToken(void *)" (?duplicatePipeClientToken@WTS@@SAXPAX@Z)

1>win-system.lib(WTS.obj) : error LNK2019: unresolved external symbol "public: __thiscall PipeImpersonatedThread::PipeImpersonatedThread(void *)" (??0PipeImpersonatedThread@@QAE@PAX@Z) referenced in function "public: static void __cdecl WTS::duplicatePipeClientToken(void
*)" (?duplicatePipeClientToken@WTS@@SAXPAX@Z)

1>F:\2-研D发¤¡é库a\远?程¨¬控?制?\tightvnc\tvnserver-2.0.4\Debug\tvnserver.exe : fatal error LNK1120: 5 unresolved externals

========== Build: 0 succeeded, 1 failed, 23 up-to-date, 0 skipped ==========

 

Build tvnserver工程即可完成服务端的构建,构建完后,会在tvnserver-2.0.4目录下生成debug目录,在debug目录下会生成许多lib库和tvnserver.exe。

 

编译客户端tvnviewer-1.5.4

 

将所有工程的字符集设置为多字节字符集。

在工程设置对话框的Configuration Properties/General选项卡,将Character Set设置为Use Multi-Byte Character Set,默认为Use Unicode Character Set。

 

修改win-system工程,添加文件PipeImpersonatedThread.cpp。

 

Build tvnviewer工程即可完成客户端的构建,构建完后,会在tvnviewer-1.5.4目录下生成debug目录,在debug目录下会生成许多lib库和vncviewer.exe。

 

【上篇】
【下篇】

抱歉!评论已关闭.