这是一个C程序项目,用到了TC有而VC没有的库函数,有什么方法可以解决?添加引用TC的库或者使用相同功能的VC函数。
不可用的TC函数:bios的bioskey(int cmd) ,window(int x,int y,int z,int n)
我直接下载了TC的bios.h头文件,添加引用到VC项目的头文件中,虽然可以include,但是仍然报告一个bioskey函数无法解析的错误:
错误 48 error LNK2019: 无法解析的外部符号 "int __cdecl bioskey(int)" (?bioskey@@YAHH@Z),该符号在函数 "int __cdecl menu_select(void)" (?menu_select@@YAHXZ) 中被引用 d:\我的文档\visual studio 2010\Projects\SalaryManage_test\SalaryManage_test\GongZi.obj SalaryManage_test
这是引用bioskey函数的函数的代码:
C/C++ code
int menu_select()
{
char *f[]= { /*定义菜单字符串数组*/
"**************MENU*************", /*菜单的标题行*/
" 0. init list", /*初始化双链表*/
" 1. Enter list", /*输入数据,创建双链表*/
" 2. List all \n", /*显示所有记录*/
" 3. Display record by step", /*显示单条记录*/
" 4. Calc the salary", /*计算实发工资*/
" 5. Search record on name", /*查找记录*/
" 6. Delete a record", /*删除记录*/
" 7. Insert record to list", /*插入记录*/
" 8. Append record to file", /*追加记录*/
" 9. Save data to the file", /*保存文件*/
" 10. Load data from the file",/*读取文件*/
" 11. Copy the file to new file", /*复制文件*/
" 12. Sort on sfgz", /*排序*/
" 13. Computer ticket number", /*计算所需票面数*/
" 14. Index on number", /*索引*/
" 15. Total on number", /*分类合计*/
" 16. Quit" }; /*退出*/
char s[80];
int i;
int key=0; /*记录所压键值*/
int c=0;
gotoxy(1,25); /*移动光标*/
printf("press any key enter menu......\n");/*压任意键进入主菜单*/
getch();
system("cls"); /*清屏*/
SetConsoleTextAttribute(ohandle,FOREGROUND_GREEN); /*设置文本颜色为绿色*/
SetConsoleTextAttribute(ohandle,BACKGROUND_BLUE); /*设置背景颜色为兰色*/
gotoxy(10,2);
putch(0xda); /*输出左上角边框┏*/
for(i=1;i<44;i++)
putch(0xc4); /*输出上边框水平线*/
putch(0xbf); /*输出右上角边框 ┓*/
for(i=3;i<22;i++)/*输出左右两边的垂直线*/
{
gotoxy(10,i);putch(0xb3);
gotoxy(54,i);putch(0xb3);
}
gotoxy(10,22);putch(0xc0); /*输出左上角边框┗*/
for(i=1;i<44;i++)
putch(0xc4); /*输出下边框水平线*/
putch(0xd9); /*输出右下角边框┛*/
//window(11,3,53,21); /* 制作显示菜单的窗口,大小根据菜单条数设计*/
system("cls"); /*清屏*/
for(i=0;i<18;i++)
{
gotoxy(10,i+1);
cprintf("%s",f[i]); /*输出菜单项数组*/
}
i=1;
gotoxy(10,2); /*设置默认选项在第一项*/
SetConsoleTextAttribute(ohandle,BACKGROUND_BLUE); /*设置背景颜色为蓝色*/
cprintf("%s",f[1]); /*输出菜单项,表示选中*/
gotoxy(10,2); /*移动光标到菜单的第一项*/
while(key!=13) /*所压键不是回车键时*/
{
while(bioskey(1)==0); /*查询是否压下了一个键*/
key=bioskey(0); /*返回下一个在键盘压下的键*/
key=key&0xff?key&0xff:key>>8; /*对所压的键进行判断*/