在vs.net 2003中编译ns2(3):编译otcl
2007-04-07 17:12
405 查看
1 编译winotcl.dll
1) 创建winotcl.dll工程,记住选上“导出符号”。
2) 将工程的输出路径改为:$(SolutionDir)/Debug。原因:将所有生成的dll和exe放在同一目录下,避免产生找不到文件的情况。
3) 将中间目录改为:$(SolutionDir)/Debug/wintcl。原因:个人喜爱。
4) 在“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/otcl-1.13";
“.”;
5) 将“C/C++ -> 代码生成 -> 运行时库”改为“多线程调试DLL”。原因:避免C运行时库链接错误。
6) 在“C/C++ ->预编译头”中改为“自动生成”。原因:避免#include “stdafx.h”。
7) 将otcl-1.13/otcl.c; otcl-1.13/otcl.h两个文件添加到工程中。
8) 打开otcl.h,添加
#include "winotcl.h"
将extern全部替换为WINOTCL_API,用以导出函数。记住务必使用大小写匹配和全字匹配。
9) 打开otcl.c,找到第1363行(OtclOProcMethod函数里面)
Tcl_CmdInfo proc;
int op;
在这行的下面添加一个新行:
memset(&proc, 0, sizeof(Tcl_CmdInfo));
否则在最后释放内存的时候将出错。
10) 将wintcl.dll、wintk设置为此项目的依赖项目。
11) 编译工程,生成winotcl.dll
2 编译otclsh.exe
1) 创建otclsh.exe工程,类型为命令行程序,选择空项目选项。
2) 在工程中添加以下文件:
D:/ns-allinone-2.31/otcl-1.13/otclAppInit.c
3) 将工程的输出路径改为:$(SolutionDir)/Debug。原因:将所有生成的dll和exe放在同一目录下,避免产生找不到文件的情况。
4) 将中间目录改为:$(SolutionDir)/Debug/otclsh。原因:个人喜爱。
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/otcl-1.13";
“../winotcl”;
6) 将“C/C++ -> 代码生成 -> 运行时库”改为“多线程调试DLL”。原因:避免C运行时库链接错误。
7) 在“C/C++ ->预编译头”中改为“自动生成”。原因:避免#include “stdafx.h”。
8) 将wintcl.dll、wintk.dll、winotcl.dll设置为此项目的依赖项目。
9) 编译运行
10) 在otcl命令行下运行测试tcl:
cd otcl-1.13
cd lib
source test.tcl
1) 创建winotcl.dll工程,记住选上“导出符号”。
2) 将工程的输出路径改为:$(SolutionDir)/Debug。原因:将所有生成的dll和exe放在同一目录下,避免产生找不到文件的情况。
3) 将中间目录改为:$(SolutionDir)/Debug/wintcl。原因:个人喜爱。
4) 在“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/otcl-1.13";
“.”;
5) 将“C/C++ -> 代码生成 -> 运行时库”改为“多线程调试DLL”。原因:避免C运行时库链接错误。
6) 在“C/C++ ->预编译头”中改为“自动生成”。原因:避免#include “stdafx.h”。
7) 将otcl-1.13/otcl.c; otcl-1.13/otcl.h两个文件添加到工程中。
8) 打开otcl.h,添加
#include "winotcl.h"
将extern全部替换为WINOTCL_API,用以导出函数。记住务必使用大小写匹配和全字匹配。
9) 打开otcl.c,找到第1363行(OtclOProcMethod函数里面)
Tcl_CmdInfo proc;
int op;
在这行的下面添加一个新行:
memset(&proc, 0, sizeof(Tcl_CmdInfo));
否则在最后释放内存的时候将出错。
10) 将wintcl.dll、wintk设置为此项目的依赖项目。
11) 编译工程,生成winotcl.dll
2 编译otclsh.exe
1) 创建otclsh.exe工程,类型为命令行程序,选择空项目选项。
2) 在工程中添加以下文件:
D:/ns-allinone-2.31/otcl-1.13/otclAppInit.c
3) 将工程的输出路径改为:$(SolutionDir)/Debug。原因:将所有生成的dll和exe放在同一目录下,避免产生找不到文件的情况。
4) 将中间目录改为:$(SolutionDir)/Debug/otclsh。原因:个人喜爱。
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/otcl-1.13";
“../winotcl”;
6) 将“C/C++ -> 代码生成 -> 运行时库”改为“多线程调试DLL”。原因:避免C运行时库链接错误。
7) 在“C/C++ ->预编译头”中改为“自动生成”。原因:避免#include “stdafx.h”。
8) 将wintcl.dll、wintk.dll、winotcl.dll设置为此项目的依赖项目。
9) 编译运行
10) 在otcl命令行下运行测试tcl:
cd otcl-1.13
cd lib
source test.tcl
相关文章推荐
- 在vs.net 2003中编译ns2(7):编译bluehoc
- 在vs.net 2003中编译ns2(1):编译tcl
- 在vs.net 2003中编译ns2(5):编译ns2
- 在vs.net 2003中编译ns2(2):编译tk
- 在vs.net 2003中编译ns2(4):编译tclcl
- 在vs.net 2003中编译ns2(6):编译nam
- 很喜欢VS.NET 2003对条件编译的代码提示
- VS.NET 2003编译DirectShow的问题
- vs.net 2003 中 编译运行directx sample项目
- 很喜欢VS.NET 2003对条件编译的代码提示
- Vs.net 2003调用Matlab7编译的COM组件的问题与讨论
- vs.net 2003 和2005中邮件发送比较
- VS.net 2003快捷键一览表
- VS.NET 2003 控件命名规范
- VS.NET2003多项目解决方案的一个BUG
- 网站开发中/Web 应用程序中 在VS.NET 2003 中打包部署水晶报表
- VS.net 2003的内存泄漏检测功能
- VS.net编译错误,无任何出错提示?
- 【ASP.NET】VS编译成功后自动生成Nuget包
- 开源:VS.NET打印思想与2003/5DataGrid、DataGridView及二维数据如ListView等终极打印实现