Linker Error:Undefined symbol '_main' in module cos

dikewaer 2008-04-21 10:42:03
请教高人
我在TC2下编译运行了一个程序,但是在链接过程中出现问题,提示为Linker Error:Undefined symbol '_main' in module cos
请高手指点!若是留下联系方式更是感激!
我的QQ是105726026谢谢了
...全文
740 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
接分先!
阿发伯 2008-04-24
  • 打赏
  • 举报
回复
我想把这个软件做的更友好点,弄个外包装
==========================================================
你指的是程序界面?DOS下的程序界面只能自己设计,TC2.0有图形库,可以尝试一下
dikewaer 2008-04-24
  • 打赏
  • 举报
回复
谢谢您百忙中还帮我解决问题,谢谢
现在问题初步解决了,我环了一个环境,加上将程序本身的错误进行修改后,可以运行得到正确的结果了,
不过新问题又来了,由于C每有封装方面的功能
我想把这个软件做的更友好点,弄个外包装,不知道怎么做好,您能帮我想想办法吗?
dikewaer 2008-04-22
  • 打赏
  • 举报
回复
不好意思,刚刚贴错了
是下面这个
# include <stdio.h>
char juzheng[26][26];
int check(char str[])/*被调函数,判断输入合法否 */
{int i,j=strlen(str);
int illeagle=0;
for(i=0;i<=j||illeagle;)
{if(str[i]>='A'&&str[i]<='Z')i++;
else {illeagle=1;
i++;
}
}
return (!illeagle);
}/*被调函数,判断输入合法否 */

void creatjuzheng( )/*Vegenre矩阵初始化*/
{int i,j,k=0;
for(i=0;i<=26;i++)
{k=k+i;
for(j=0;j<=26;j++)
{juzheng[i][j]=(k+j)-[(k+j)/'z'*'A']+'A';}
printf("%c",juzheng[i][j]);
}
} /*构造Vegenre矩阵*/

void main()
{
int i,j,k;
char ch;
int shutdown=0;
char strPlaintext[]; /*明文*/
char strCiphertext[]; /*密文*/
char strTemp[]; /*临时串*/
char strKey[];/*密钥*/
int check(char str[]);/*该函数用于检验输入是否在A--Z之间,在则返回1,否则,返回0.*/
void creatjuzheng();/*该函数用于构造维吉尼亚方阵*/
creatjuzheng();
do
{printf("这款加解密软件是本人(湖北警官学院04信息安全本科学生丁凯)的毕业设计,首先我要感谢徐伟老师在设计过程中对我的指导和帮助!该设计旨在进行编程体验,共同学习。由于以前没什么编程经历,缺陷会有的,欢迎大家提出宝贵的意见。我的联系方式:QQ:65227096,E-mail:04006063001.good@163.com\n")

do {printf("明文(加密时)或者密文(解密时)(仅限26个大写英文字母,长度任意!):\n");
gets(strPlaintext);
if(!check(strPlaintext)) printf("明(密)文输入不符合规格,请重新输入!");
}
while(!check(strPlaintext))
puts(strPlaintext);/*回显明文串*/
strcpy(strCiphertext,strPlaintext);/*复制串*/
do {printf("请输入密钥(仅限26个大写英文字母,长度任意!):\n");
gets(strKey);
if(!check(strkey)) printf("密码不符合规格,请重新输入!");
}
while(!check(strkey))/*密钥别回显!*/

do {printf("功能选择:加密(Y)或解密(N))或结束(O):\n");
ch=getch();
if(ch!='Y'&&ch!='N'&&ch!='O')
printf("请重新选择功能\n");
}
while(ch!=='Y'&&ch!=='N'&&ch!=='O')
if(ch=='Y')/*加密*/
{printf("正在加密,这可能需要几秒钟...\n");
i=0,j=0;
while(strPlaintext[i])
{strCiphertext[i]=juzheng[strkey[j]-'A'][strPlaintext[i]-'A'];
i++,j=(j+1)%strlen(strkey);
printf("加密结果如下:\n");
puts(strCiphertext);
printf("\n");
}
}
else if(ch=='N')/*解密*/
{printf("正在解密,这可能需要几秒钟...\n");
i=0,j=0;
while(strCiphertext[i])
{for(k=0;juzheng[strkey[j]-'A'][k]==strCiphertext[i];k++)
{ }
strPlaintext[i]=k+'A';
i++,j=(j+1)%strlen(strkey);
printf("解密结果如下:\n");
puts(strPlaintext);
printf("\n");
}
}
else/*程序结束*/
shutdown=1;
}
while(!shutdown)
}
dikewaer 2008-04-22
  • 打赏
  • 举报
回复
# include <stdio.h>
char juzheng[L][W];
int check(char str[])/*被调函数,判断输入合法否 */
{int i,j=strlen(str);
int illeagle=0;
for(i=0;i<=j||illeagle;)
{if(str[i]>='A'&&str[i]<='Z')i++;
else {illeagle=1;
i++;
}
}
return (!illeagle);
}/*被调函数,判断输入合法否 */

void creatjuzheng(int l,int w)/*构造Vegenre矩阵*/
{int i,j,L,W,k=0;
L=l,W=w;
for(i=0;i<=L;i++)
{k=k+i;
for(j=0;j<=W;j++)
{juzheng[i][j]=(k+j)-[(k+j)/'z'*'A']+'A';}
printf("%c",juzheng[i][j]);
}
} /*构造Vegenre矩阵*/
main()
{
int i,j,k;
char ch,shutdown=0;
char strPlaintext[]; /*明文*/
char strCiphertext[]; /*密文*/
char strTemp[]; /*临时串*/
char strKey[];/*密钥*/
int check(char str[]);/*该函数用于检验输入是否在A--Z之间,在则返回1,否则,返回0.*/
void creatjuzheng(int l,int w);/*该函数用于构造维吉尼亚方阵*/
do
{printf("这款加解密软件是本人(湖北警官学院04信息安全本科学生丁凯)的毕业设计,首先我要感谢徐伟老师在

设计过程中对我的指导和帮助!该设计旨在进行编程体验,共同学习。由于以前没什么编程经历,缺陷会有的,欢迎大

家提出宝贵的意见。我的联系方式:QQ:65227096,E-mail:04006063001.good@163.com\n")

do {printf("明文(加密时)或者密文(解密时)(仅限26个大写英文字母,长度任意!):\n");
gets(strPlaintext);
if(!check(strPlaintext)) printf("明(密)文输入不符合规格,请重新输入!");
}
while(!check(strPlaintext))
puts(strPlaintext);/*回显明文串*/
strcpy(strCiphertext,strPlaintext);/*复制串*/
do {printf("请输入密钥(仅限26个大写英文字母,长度任意!):\n");
gets(strKey);
if(!check(strkey)) printf("密码不符合规格,请重新输入!");
}
while(!check(strkey))/*密钥别回显!*/
creatjuzheng(25,25);
do {printf("功能选择:加密(Y)或解密(N))或结束(O):\n");
ch=getch();
if(ch!=='Y'&&ch!=='N'&&ch!=='O')
printf("请重新选择功能\n");
}
while(ch!=='Y'&&ch!=='N'&&ch!=='O')
if(ch=='Y')/*加密*/
{printf("正在加密,这可能需要几秒钟...\n");
i=0,j=0;
while(strPlaintext[i])
{strCiphertext[i]=juzheng[strkey[j]-'A'][strPlaintext[i]-'A'];
i++,j=(j+1)%strlen(strkey);
printf("加密结果如下:\n");
puts(strCiphertext);
printf("\n");
}
}
else if(ch=='N')/*解密*/
{printf("正在解密,这可能需要几秒钟...\n");
i=0,j=0;
while(strCiphertext[i])
{for(k=0;juzheng[strkey[j]-'A'][k]==strCiphertext[i];k++)
{ }
strPlaintext[i]=k+'A';
i++,j=(j+1)%strlen(strkey);
printf("解密结果如下:\n");
puts(strPlaintext);
printf("\n");
}
}
else/*程序结束*/
shutdown=1;
}
while(!shutdown)
}
bitxinhai 2008-04-22
  • 打赏
  • 举报
回复
没有写main()函数吧!!
atiansk2006 2008-04-22
  • 打赏
  • 举报
回复

把代码贴出来, 看一下.

dikewaer 2008-04-22
  • 打赏
  • 举报
回复
定义全局变量的时候
需要带参数不?
主函数带参数代表什么啊
谢谢。
future_fighter 2008-04-22
  • 打赏
  • 举报
回复
错误好像不少啊,呵呵.

juzheng[i][j]=(k+j)-[(k+j)/'z'*'A']+'A' --> 表达式里面的中括号干什么的?
char strKey[];/*密钥*/ --> 字符数组是空的,下面的gets(..)会出错的啊
....

future_fighter 2008-04-22
  • 打赏
  • 举报
回复
呵呵...不好意思,一时大意
入口函数第二中形式int main(int ,char **)
大多数人都将其写为 int main(int argc,char * argv[])
argc: 代表在命令行中输入的命令参数个数
argv:是命令行参数字符串数组
如:在cmd下,输入 test arg1 arg2 ,那么argc此时就是3,arv[0]="test",arv[1]="arg1"...
阿发伯 2008-04-22
  • 打赏
  • 举报
回复
十多年没用TC了,按LZ说的情况,应该是在TC集成环境下产生的错误,估计是没有建立工程的缘故。应先建立一个应用程序工程,然后把源文件加进去
future_fighter 2008-04-21
  • 打赏
  • 举报
回复
是不是main入口函数写错了?C中的入口函数有以下两种形式:
int main(); 或者 int main(int,char *);

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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