Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 软件时空 > 软件相关 > 在vs.net 2003中编译ns2(2):编译tk
【标  题】:在vs.net 2003中编译ns2(2):编译tk
【关键字】:vs.net,2003,ns2
【来  源】:http://blog.csdn.net/lights_joy/archive/2007/04/07/1555712.aspx

在vs.net 2003中编译ns2(2):编译tk

Your Ad Here  
1              编译wintk.dll
1、 创建wintk.dll工程。
2、 删除wintk.cpp(自动生成的文件)中的DllMain函数。原因:tk提供了此函数。
3、 将工程的输出路径改为:$(SolutionDir)\Debug。原因:将所有生成的dll和exe放在同一目录下,避免产生找不到文件的情况。
4、 将中间目录改为:$(SolutionDir)\Debug\wintk。原因:个人喜爱。
5、 在“C/C++ -> 附加包含目录”中添加:
"D:\ns-allinone-2.31\tcl8.4.14\generic";
"D:\ns-allinone-2.31\tcl8.4.14\win";
"D:\ns-allinone-2.31\tk8.4.14\generic";
"D:\ns-allinone-2.31\tk8.4.14\win";
"D:\ns-allinone-2.31\tk8.4.14\xlib";
"D:\ns-allinone-2.31\tk8.4.14\bitmaps";
6、 将“C/C++ -> 代码生成 -> 运行时库”改为“多线程调试DLL”。原因:避免C运行时库链接错误。
7、 在“C/C++ ->预处理器”中添加Build_tk的宏定义。原因:这样可以导出符号。
8、 在“C/C++ ->预编译头”中改为“自动生成”。原因:避免#include “stdafx.h”。
9、 在“链接器 -> 输入 -> 附加项”中添加Imm32.lib comctl32.lib
10、              将wintcl.dll设置为此项目的依赖项目。
11、             
tk8.4.14\generic;
tk8.4.14\win;
tk8.4.14\compat;
tk8.4.14\xlib;
4个目录下.c和.h文件添加到工程中。
12、              将tk8.4.14\unix目录下的tkUnixMenubu.c和tkUnixScale.c两个文件添加到工程中。
13、              从工程中删除以下文件:
compat:
generic:
win:
nmakehlp.c
winMain.c
14、              打开tk.h,添加
#ifdef Build_tk
#define WINTK_API __declspec(dllexport)
#else
#define WINTK_API __declspec(dllimport)
#endif
在工程中搜索EXTERN并将之替换为WINTK_API。记住务必使用大小写匹配和全字匹配。
原因:EXTERN这个名字太普通了,会造成很在的困扰。
15、              打开tkWinButton.c,在第349行(TkpDisplayButton函数中)有如下定义:
int width, height, haveImage = 0, haveText = 0, drawRing = 0;
将之改为
int width = 0, height = 0, haveImage = 0, haveText = 0, drawRing = 0;
否则将出现运行时错误。
16、              打开tkUnixMenubu.c,在第79行(TkpDisplayMenuButton函数中)有如下定义:
    int width, height, fullWidth, fullHeight;
将之改为
    int width = 0, height = 0, fullWidth = 0, fullHeight = 0;
否则将出现运行时错误。
17、              将tk8.4.14\win\rc\tk.rc添加到工程中。
18、              打开tk.rc,将最后一行
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "wish.exe.manifest"
注释掉
19、              查看tk.rc的属性,在“预处理器定义”中添加“Build_tk”,在附加包含目录中添加
"D:\ns-allinone-2.31\tcl8.4.14\generic";
"D:\ns-allinone-2.31\tcl8.4.14\win";
"D:\ns-allinone-2.31\tk8.4.14\generic";
"D:\ns-allinone-2.31\tk8.4.14\win";
"D:\ns-allinone-2.31\tk8.4.14\xlib";
"D:\ns-allinone-2.31\tk8.4.14\bitmaps";
20、              编译工程,生成wintk.dll
2              编译tksh.exe
21、              创建tksh.exe工程,类型为Windows应用程序。
22、              在工程在删除tksh.cpp(自动生成的文件)。
23、              在工程中添加以下文件:
D:\ns-allinone-2.31\tcl8.4.14\win\winMain.c
24、              将工程的输出路径改为:$(SolutionDir)\Debug。原因:将所有生成的dll和exe放在同一目录下,避免产生找不到文件的情况。
25、              将中间目录改为:$(SolutionDir)\Debug\tclsh。原因:个人喜爱。
26、              在“C/C++ -> 附加包含目录”中添加:
"D:\ns-allinone-2.31\tcl8.4.14\generic";
"D:\ns-allinone-2.31\tcl8.4.14\win";
"D:\ns-allinone-2.31\tk8.4.14\generic";
"D:\ns-allinone-2.31\tk8.4.14\win";
"D:\ns-allinone-2.31\tk8.4.14\xlib";
27、              将“C/C++ -> 代码生成 -> 运行时库”改为“多线程调试DLL”。原因:避免C运行时库链接错误。
28、              在“C/C++ ->预编译头”中改为“自动生成”。原因:避免#include “stdafx.h”。
29、              将wintcl.dll、wintk.dll设置为此项目的依赖项目。
30、              将tk8.4.14\win\rc\wish.rc添加到工程中。
31、              打开wish.rc,将最后一行
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "wish.exe.manifest"
注释掉
32、              查看wish.rc的属性,在附加包含目录中添加
"D:\ns-allinone-2.31\tcl8.4.14\generic";
"D:\ns-allinone-2.31\tcl8.4.14\win";
"D:\ns-allinone-2.31\tk8.4.14\generic";
"D:\ns-allinone-2.31\tk8.4.14\win";
"D:\ns-allinone-2.31\tk8.4.14\xlib";
"D:\ns-allinone-2.31\tk8.4.14\bitmaps";
33、              在Windows系统环境中添加一个变量:
TK_LIBRARY:D:\ns-allinone-2.31\tk8.4.14\library
34、              编译运行
35、              在tk命令行下运行测试tcl:
cd tk8.4.14
cd tests
source all.tcl
 
《TCP/IP详解,卷2:实现》读书笔记-接口分析:【上一篇】
网络搜索发展——我的见解:【下一篇】
【相关文章】
  • 在vs.net 2003中编译ns2(3):编译otcl
  • 2003年起国内七家单位可查看微软操作系统源代码
  • 在vs.net 2003中编译ns2(5):编译ns2
  • 在vs.net 2003中编译ns2(6):编译nam
  • WIN2003下Web服务器配置(实现WAP应用)
  • Windows2003下DNS架设攻略(图)
  • Win2003下Mail服务器全攻略(图)
  • EVC4.0安装说明,开发ppc2003
  • vs.net2003下配置openSG
  • Smartphone2003不支持打开/保存文件对话框
  • 【随机文章】
  • Speech API In WPF
  • freebsd6.1 下整合安装apache22和resin3实现jsp功能
  • UML-based workflow |wfmc|面向对象的概念
  • VMware中Linux内核2.6.14.4编译全过程(终于编译通过了!!!)
  • 用CorelDRAW制作自己的贺卡
  • 防止内部攻击排除网管密码安全隐患
  • 演示文稿变小巧
  • 课件中巧添重复信息
  • W2K主机ARP表操作的实现
  • [Linux]rdesktop连接windows terminal service(好东东~)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.