郁闷啊c++builder2009对新手不礼貌~

时间:2021-02-28 11:19:39
编译同一段代码VC++6.0通过了C++builder2007、2009出现了同一个错误:
[ILINK32 Error] Error: Unresolved external '__InitVCL' referenced from D:\TOOL\RAD STUDIO\LIB\CP32MTI.LIB|crtlvcl
[ILINK32 Error] Error: Unresolved external '__ExitVCL' referenced from D:\TOOL\RAD STUDIO\LIB\CP32MTI.LIB|crtlvcl
怎么回事的,郁闷啊~

8 个解决方案

#1


连接错误。。。

lib目录设置过没有?

#2


没设置过
但显示错误这里的lib路径是对的呀:from D:\TOOL\RAD STUDIO\LIB\CP32MTI.LIB

#3


把完整的代码贴出来看看啊

:-)

#4


把完整的代码贴出来看看啊

:-)

#5


代码呢?

#6


创建工程(Project)的时候,选项当中那个Use VCL前的勾去掉即可.试着再重新创建一个Project吧.

#7


哇,按照6楼的做就可以了,非常感谢这位达人~
以下是代码:
#include<stdio.h>
#include<stdlib.h>
struct ElemType 
{
   int numb;
   char name[20];
   long tel;
}elem[100];

int length;
void SetData()
{
   printf("\n 请输入总人数:");
   scanf("%d",&length);
   int i=0;
   for(;i<length;i++)
    {
      printf("\n 请输入学号:");
      scanf("%d",&elem[i].numb);
      printf("\n 请输入姓名:");
      scanf("%s",&elem[i].name);
      printf("\n 请输电话号码:");
      scanf("%ld",&elem[i].tel);
    }
}

void Insert(int i,ElemType e)
{
//程序填空①
if(i<1||i>length+1)
{
printf("error!");
exit(1);
}
if(length+1>100)
{
printf("overflow!");
exit(1);
}
i--;
for(int j=length;j>=i;j--)
elem[j+1]=elem[j];
elem[i]=e;
length++;
}

ElemType Delete(int i)
{
   ElemType x;
   int j;
   i--;
   if(i<0||i>length-1)
     {
        printf("i Error!");
        x.numb=-1;
     }
   else
    {
        //程序填空②
    x=elem[i];
    for(j=i;j<length;j++)
    elem[j]=elem[j+1];
    length--;

    }
   return x;
}

void PrintOut()
{
   printf("\n 通讯录总人数:%d",length);
   printf("\n PrintOut Data:\n");
   printf("   学号    姓名   电话号码\n");
   for(int k=0;k<length;k++)
    {
       printf("   %d   %s   %ld\n",elem[k].numb,elem[k].name,elem[k].tel);
    }
}

int main()
{
int i,k,delnum;
   struct ElemType e,x;
   printf("\n         通讯录演示");
   do
    {
      printf("\n   1. 初步建立一个通讯录(线性表)");
      printf("\n   2. 插入一个数据元素");
      printf("\n   3. 删除一个元素,返回其值");
      printf("\n********************************");
      printf("\n    请输入你的选择(1,2,3,4)");
      scanf("%d",&k);
      switch(k)
       {
          case 1: SetData();PrintOut(); break;
          case 2: 
                  printf("\n 插入位置,i=");
                  scanf("%d",&i);
                  printf("\n 插入的数据学号=");
                  scanf("%d",&e.numb);
                  printf("\n 插入的数据姓名=");
                  scanf("%s",&e.name);
                  printf("\n 插入的数据电话号码=");
                  scanf("%d",&e.tel);
                  Insert(i,e);
                  PrintOut();
                  break;
          case 3:
                  printf("\n 删除第几个元素,i=");
                  scanf("%d",&delnum);
                  x=Delete(delnum);
                  printf("\n   被删除的元素数值");
                  printf("\n 学号:%d,姓名:%s,电话号码:%ld",x.numb,x.name,x.tel);
                  //printf(",姓名:%d",x);
                  PrintOut();
                  break;
          default:break;
       }
    }while(k>=1&&k<4);
    printf("\n       再见!\n     按任意键返回。。。;");
    getchar();
    return 0;
}

#8


hehe

#1


连接错误。。。

lib目录设置过没有?

#2


没设置过
但显示错误这里的lib路径是对的呀:from D:\TOOL\RAD STUDIO\LIB\CP32MTI.LIB

#3


把完整的代码贴出来看看啊

:-)

#4


把完整的代码贴出来看看啊

:-)

#5


代码呢?

#6


创建工程(Project)的时候,选项当中那个Use VCL前的勾去掉即可.试着再重新创建一个Project吧.

#7


哇,按照6楼的做就可以了,非常感谢这位达人~
以下是代码:
#include<stdio.h>
#include<stdlib.h>
struct ElemType 
{
   int numb;
   char name[20];
   long tel;
}elem[100];

int length;
void SetData()
{
   printf("\n 请输入总人数:");
   scanf("%d",&length);
   int i=0;
   for(;i<length;i++)
    {
      printf("\n 请输入学号:");
      scanf("%d",&elem[i].numb);
      printf("\n 请输入姓名:");
      scanf("%s",&elem[i].name);
      printf("\n 请输电话号码:");
      scanf("%ld",&elem[i].tel);
    }
}

void Insert(int i,ElemType e)
{
//程序填空①
if(i<1||i>length+1)
{
printf("error!");
exit(1);
}
if(length+1>100)
{
printf("overflow!");
exit(1);
}
i--;
for(int j=length;j>=i;j--)
elem[j+1]=elem[j];
elem[i]=e;
length++;
}

ElemType Delete(int i)
{
   ElemType x;
   int j;
   i--;
   if(i<0||i>length-1)
     {
        printf("i Error!");
        x.numb=-1;
     }
   else
    {
        //程序填空②
    x=elem[i];
    for(j=i;j<length;j++)
    elem[j]=elem[j+1];
    length--;

    }
   return x;
}

void PrintOut()
{
   printf("\n 通讯录总人数:%d",length);
   printf("\n PrintOut Data:\n");
   printf("   学号    姓名   电话号码\n");
   for(int k=0;k<length;k++)
    {
       printf("   %d   %s   %ld\n",elem[k].numb,elem[k].name,elem[k].tel);
    }
}

int main()
{
int i,k,delnum;
   struct ElemType e,x;
   printf("\n         通讯录演示");
   do
    {
      printf("\n   1. 初步建立一个通讯录(线性表)");
      printf("\n   2. 插入一个数据元素");
      printf("\n   3. 删除一个元素,返回其值");
      printf("\n********************************");
      printf("\n    请输入你的选择(1,2,3,4)");
      scanf("%d",&k);
      switch(k)
       {
          case 1: SetData();PrintOut(); break;
          case 2: 
                  printf("\n 插入位置,i=");
                  scanf("%d",&i);
                  printf("\n 插入的数据学号=");
                  scanf("%d",&e.numb);
                  printf("\n 插入的数据姓名=");
                  scanf("%s",&e.name);
                  printf("\n 插入的数据电话号码=");
                  scanf("%d",&e.tel);
                  Insert(i,e);
                  PrintOut();
                  break;
          case 3:
                  printf("\n 删除第几个元素,i=");
                  scanf("%d",&delnum);
                  x=Delete(delnum);
                  printf("\n   被删除的元素数值");
                  printf("\n 学号:%d,姓名:%s,电话号码:%ld",x.numb,x.name,x.tel);
                  //printf(",姓名:%d",x);
                  PrintOut();
                  break;
          default:break;
       }
    }while(k>=1&&k<4);
    printf("\n       再见!\n     按任意键返回。。。;");
    getchar();
    return 0;
}

#8


hehe