高手快来帮忙,告诉我这是什么错误啊?

beowner 2003-10-19 01:17:58
我在用vc.net编一个多项式相乘时,出现了这么两个错误,那位高手告诉我这是什么错误啊,多谢!急,在线等待!
我在vc6.0中就没有这两个错误啊!
这两个错误是这样的:
1.error LNK2019:无法解析的外部符号 -WinMain@16 ,该符号在函数-WinMainCRTStartup中被引用
2.fatal error LNK1120:1个无法解析的外部命令


具体的程序如下:

头文件:PList.h
#ifndef POLY
#define POLY

typedef struct PLNode
{
int xi,zhi;
struct PLNode *next;
}PLNode;

class PList
{
private:
PLNode *Head,*Tail;
int length;
public:
PList()
{
Head=Tail=0;
}

~PList();

bool isempty()
{
return Head==0;
}

int GetLength()
{
return length;
}

void ListCreat_PL(int n);
void ListCreate_PL(char);

static PLNode* ListAdd_PL(PList P,PList Q);
static PLNode* ListMul_PL(PList P,PList Q);

static char Compare(int,int);

PLNode* GetHead();
PLNode* GetTail();
};
#endif


cpp文件:
# include <iostream>
# include <conio.h>
# include "Plist.h"
using namespace std;
#define null 0


PList::~PList()
{

}

void PList::ListCreat_PL(int n)
{
int i;
PLNode *pc;
Head=new PLNode;
Head->xi=n;
Head->next=null;
Tail=Head;
for (i=1;i<=n;i++)
{
PLNode *p=new PLNode;
cout<<"请输入第"<<i<<"项的x系数:";
cin>>p->xi;
cout<<"请输入第"<<i<<"项的x指数:";
cin>>p->zhi;
p->next=Tail->next;
Tail->next=p;
Tail=p;
}

cout<<"L("<<n<<")=";
pc=Head->next;
while(pc!=0)
{
cout<<pc->xi<<"x^"<<pc->zhi<<"+";

pc=pc->next;
}

}

void PList::ListCreate_PL(char)
{
Head=new PLNode;
Head->next=null;
Head->xi=0;
Tail=Head;
}



PLNode* PList::GetHead()
{
return Head;
}

PLNode* PList::GetTail()
{
return Tail;
}

char PList::Compare(int a,int b)
{
if(a>b) return 1;
else if(a<b) return -1;
else return 0;
}

PLNode* PList::ListAdd_PL(PList P,PList Q)
{
int a,b;
PLNode *pa,*pb,*pc,*p,*h;

pa=pc=h=P.GetHead();
pb=p=Q.GetHead();
a=pa->zhi;
b=pb->zhi;
delete p;

while(pa&&pb)
{
switch(PList::Compare(a,b))
{
case -1:
pc=pa;
pa=pa->next;
break;//pa的系数小
case 0:
pa->xi=pa->xi+pb->xi;
if(pa->xi!=0)
{
pc=pa;
pa=pa->next;
p=pb;
pb=pb->next;
delete p;
}
else
{
h=pa;
pa=pa->next;
pb=pb->next;
delete h;//pa的系数大
}
break;
case 1:
p=pb;
pc->next=p;
p->next=pa;
pb=pb->next;
break;//存在问题
}
}
while(pb->next!=null)
{
p=pb;
pa->next=pb;
pb=pb->next;
pa=pa->next;
delete p;
}
pa=P.GetHead();
return(pa);
}



PLNode* PList::ListMul_PL(PList P,PList Q)
{
PLNode *pa,*pb,*pc,*pd;
PList p1,p2;

p1.ListCreate_PL('p');
p2.ListCreate_PL('q');
pa=P.GetHead();
pb=Q.GetHead();
pc=p1.GetHead();
pd=p2.GetHead();
while(pa->next!=null)
{
pc->xi=pa->xi*pb->xi;
pc->zhi=pa->zhi+pb->zhi;
pa=pa->next;
}
pb=pb->next;
while(pb->next!=null)
{
while(pa->next!=null)
{
pd->xi=pa->xi*pb->xi;
pd->zhi=pa->zhi+pb->zhi;
pa=pa->next;
}
PList::ListAdd_PL(p1,p2);
pb=pb->next;
}
pc=p1.GetHead();
return(pc);
}





void main()
{
int n,m;
PLNode *pc,*pd;
PList P,Q;
cout<<"请输入多项式P的长度n:";
cin>>n;
P.ListCreat_PL(n);
cout<<"请输入多项式Q的长度m:";
cin>>m;
Q.ListCreat_PL(m);
pd=PList::ListAdd_PL(P,Q);
while(pd->next)
{
cout<<pd->xi<<"x^"<<pd->zhi<<"+";
pd=pd->next;
}
pc=PList::ListMul_PL(P,Q);
while(pc->next)
{
cout<<pc->xi<<"x^"<<pc->zhi<<"+";
pc=pc->next;
}
}


我现在还在调试中,所以可能还有一些错误!现在我就不能执行了,只报那两个错误啊 !!

...全文
34 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
beowner 2003-10-23
  • 打赏
  • 举报
回复
多谢各位
yoyoyosiyu 2003-10-22
  • 打赏
  • 举报
回复
通过菜单中的 项目-> 属性,打开项目属性页,然后设置 链接器 -> system中的子系统为console,就可以了
wanglingyes 2003-10-21
  • 打赏
  • 举报
回复
我不是高手,刚才建了个WIN32项目,选择控制台,下面是空项目,
在空项目中建立h与cpp文件,打入你的代码,编译后:1 成功,0 失败:
“PList.exe”:已加载“C:\3\Visual Studio Projects\PList\Debug\PList.exe”,已加载符号。
“PList.exe”:已加载“C:\WINNT\SYSTEM32\NTDLL.DLL”,无法找到或打开所需的 DBG 文件。
“PList.exe”:已加载“C:\WINNT\SYSTEM32\KERNEL32.DLL”,无法找到或打开所需的 DBG 文件。
线程 'Win32 线程' (0x508) 已退出,返回值为 -1073741510 (0xc000013a)。
程序“[1776] PList.exe: 本机”已退出,返回值为 -1073741510 (0xc000013a)。
可能你的项目设置错误,按上面的选项打看,抑制台就是dow窗口吧?
proe 2003-10-19
  • 打赏
  • 举报
回复
连接选项有问题。
你的程序明明是dos程序,而winmain@16是windows 的入口程序。检查你的链接选项。
beowner 2003-10-19
  • 打赏
  • 举报
回复
为什么没有人来啊?先up一下!请大虾帮忙啊!!!!1

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧