LEX YACC与VC6.0连接配置以及简单示例

合集下载

vc++60中开发驱动程序的配置方法

vc++60中开发驱动程序的配置方法

VC++6.0中开发驱动程序的配置方法注意:如果你的电脑中没有安装VC++6.0等软件的话,请先安装 VC++ 6.0 ,再安装DDK,最后安装DriverStudio。

安装顺序一定不要搞错哟。

一、首先创建一个你的驱动工程文件目录。

这个目录下用来放置你的各个驱动工程文件夹。

(比如我在D盘创建了一个D:\PCI9052DVP\PCI9052DRV文件夹作为我的驱动工程文件目录)。

二、然后添加1个用户环境变量,DDKROOT,他的值应该是你所安装DDK的根目录。

(比如在安装DDK时安装到了E:\WINDDK\3790.1830,那么 DDKROOT的值应该为E:\WINDDK\3790.1830)。

添加用户环境变量后电脑需要重启。

如果没有这个用户环境变量,将不会编译任何一个文件。

三、编写一个MakeDrvr.bat批处理文件,如下(可直接copy,不用修改)。

MakeDrvr.bat应该放在工程目录下面D:\PCI9052DVP\PCI9052DRV。

@echo offif "%1"=="" goto usageif "%3"=="" goto usageif not exist %1\bin\setenv.bat goto usagecall %1\bin\setenv %1 %4%2cd %3build -b -w %5 %6 %7 %8 %9goto exit:usageecho usage MakeDrvr DDK_dir Driver_Drive Driver_Dir free/checked [build_options]echo eg MakeDrvr %%DDKROOT%% F: %%WDMWorkshop%% free -cef:exit四、建立一个Makefile工程下面我将要建立一个PCI9052DRV的工程。

(参考资料)VC++6.0安装教程

(参考资料)VC++6.0安装教程

VC++6.0 安装教程1、首先下载软件安装压缩包“VC++.rar”2、选中该压缩包,点右键,解压缩到当前文件夹(需提前安装好解压缩软件,如:winrar)3、双击打开解压后的文件夹“c++”4、在该文件夹的根目录找到“SETUP.exe”,双击运行(无视“简体中文版”那个文件夹)5、系统提示有兼容性问题,选中左下角“不再显示此消息”,再点击“运行程序”(后同)6、点击“next”继续7、选中“I accept the agreement”,点击“next”继续8、ID全部填1,填满为止;“Your name”和“Your company's name”随意,然后点击“next”继续9、点击“next”继续10、同上,勾选左下角的“不再显示此消息”,再点击“运行程序”11、同上,勾选左下角的“不再显示此消息”,再点击“运行程序”12、点击“确定”后重启电脑,记得先保存未完成的其他文件13、重启后出现如下窗口,点击“next”继续14、再点击“next”继续15、同上,勾选左下角的“不再显示此消息”,再点击“运行程序”16、点击“continue”进入下一步17、点击“ok”确认18、软件会搜寻系统是否已经安装了VC++,接下来出现此界面19、先点击右边的“Select All”,然后取消左边列表中的“Microsoft Visual Basic 6.0”和“Microsoft Visual FoxPro 6.0”前面的勾(除非你需要用到这2个软件),再点击“continue”继续20、在“Register Environment Variables”前打勾后,点“OK”继续21、点“Yes”继续22、取消2个选项前面的勾,不让其访问网络,再点击右下角的“取消”继续24、保存当前的文件后,点击“Restart Windows”重启电脑25、重启后,取消“Install MSDN”前面的勾(除非你提前下载了MSDN),点击“Next”继续27、点击“Next”继续28、点击“Next”继续29、取消“Register Now”前面的勾,点击“Next”继续30、安装结束,现在可以在开始菜单看到“Microsoft Visual Studio 6.0”的菜单31、打开“Microsoft Visual Studio 6.0”,系统继续提示兼容性问题,勾选左下角的“不再显示此消息”,点击“运行程序”32、去掉左下角“Show tips at startup”前面的勾(除非你每次打开VC++的时候想查看这些Tips),再点击“Close”继续33、打开“File”(文件)菜单,选择“New”(新建)34、在默认的“Projects”选项卡中,选择倒数第三项:“Win32 Console Application”,再右上角填上新建程序的名字,然后点击“ok”确定35、点击“Finsh”继续36、点击“OK”继续37、再打开“File”菜单,选择“New”,这次默认是“Files”选项卡,选择“C++ Source File”,勾选右上角的“Add to project”,在File文件名中,输入新建源文件的名字,注意须以“.c”结尾,如“1.c”,然后点击“ok”,即可在中间的区域开始源程序的编辑38、写好程序,点快捷栏的“编译”图标39、依然勾选左下角的“不再显示此问题”,再点击“运行程序”,以后都不会再出现此类兼容性问题的提示了40、点击快捷栏的“链接”图标,生成可执行程序41、点击快捷栏的“运行”图标,运行程序42、程序运行成功,现在可以删除解压缩的“c++”文件夹。

vc6.0配置及使用教程

vc6.0配置及使用教程

步骤是:(先工程—后文件—编译—连接---运行)1,建立一个工程,“文件”——“新建”,出现下面界面:选择“Win32 Console Application”(控制台应用程序,左边倒数第三个),命名工程名称,选择保存位置,点击“确定”,进入下一步,看到如下提示界面:建立一个空工程,对应其他需要的你一可以建立别的工程;点击“完成”,之后:显示你创建的工程的信息。

2,再在有一个的工程的条件下,我们再建立一个源文件;“文件”——“新建”(快捷键Ctri+N),出现:建立源文件,选择“C++ Source ”,一般都是建立这种文件的(适用在当文件中适用)如果要建立头文件的话,选择“C/C++ Header File”,(适用在多文件工程中使用)命名,文件名称,点击“确定”,之后:进入编辑区,在主界面编写代码:如下编写完之后呢:可以按编译按钮调试程序,看看有没有错误,有的话改正,没有的话就可以再按连接按钮检查连接(多文件工程时常用,检查文件间是否正常连接),最后,点运行按钮,就可以运行了。

如果是您有代码如:cpp文件,或 .h 文件,想添加都VC6.0里来测试的话,可以这样做:首先,要理解一下文件扩展名为:cpp和.h文件扩张名是.h,代表的是头文件,一般是书写一些函数原型,以及一些在整个程序中常用到的结构体,频繁使用的函数说明,定义等等;文件扩张名为,cpp的,是C++中的源文件,也是最常用到的文件,每建立一个工程都要至少一个源文件(至少要有一个函数入口——主函数main() ),包含了核心代码;建立与运行说明:(以VC 6.0编译器为例,其他编译器类似)首先,打开VC 6.0编译环境;在菜单栏——文件(的下拉菜单中选择“新建”),在弹出的选择窗口中,选择Win32 Console Application(控制台应用程序),在填写工程名称,选择一个程序保存路径,点击“完成”,查看工程信息。

在点击“确定”,就建立一个简单的工程了。

LEX和YACC的使用(例子)

LEX和YACC的使用(例子)

LEX和YACC的使⽤(例⼦)1、简单C语⾔的词法分析程序;%{#include<stdio.h>#include<stdlib.h>#include<ctype.h>#include<string.h>%}digit [0-9]letter [A-Za-z]other_char [!-@\[-~]id ({letter}|[_])({letter}|{digit}|[_])*string {({letter}|{digit}|{other_char})+}int_num {digit}+%%[ |\t|\n]+ "auto"|"double"|"int"|"struct"|"break"|"else"|"long"|"switch"|"case"|"enum"|"register"|"typedef"|"char"|"extern"|"return"|"union"|"const"|"float"|"short"|"unsigned"|"continue"|"for"|"signed"|"void"|"default"|"go \"([!-~])*\" {printf("CONST_string,%s\n",yytext);}-?{int_num}[.]{int_num}?([E][+|-]?{int_num})? {printf("CONST_real,%s\n",yytext);}"0x"?{int_num} {printf("CONST_int,%s\n",yytext);}","|";"|"("|")"|"{"|"}"|"["|"]"|"->"|"."|"!"|"~"|"++"|"--"|"*"|"&"|"sizeof"|"/"|"%"|"+"|"-"|">"|"<"|">="|"<="|"=="|"!="|"&"|"^"|"|"|"&"|"||"|"+="|"-="|"*="|"/="|"%="|">>="|"<<="|"&="|"^="|"|="|"=" {printf("%s,NULL\n",yytext);}{id} {printf("ID,%s\n",yytext);}{digit}({letter})+ {printf("error1:%s\n",yytext);}%%#include <ctype.h>Upper(char *s,int l){int i;for(i=0;i<l;i++){s[i]=toupper(s[i]);}}yywrap(){return 1;}注意:要得到输出信息,需要⾃⾏添加main函数,lex默认的main函数没有输出的。

VC6.0如何创建以及调用动态链接库实例详解

VC6.0如何创建以及调用动态链接库实例详解

VC6.0如何创建以及调⽤动态链接库实例详解⼩弟在公司的职责,在上篇博客中已经简约介绍。

这边博客主要介绍技术的应⽤⽽不在细究原理。

因为公司项⽬着急,出结果要紧,并且咱也不是专注搞研究的,所以,基本懂了原理后,直接上⼿⼯作,搞出demo来最好。

⾄于公司⼯作情况,今天暂且略过,当然也不是⼀两句能够表达清楚的。

后⾯会有相应的⼯作总结,敬请期待……现在,废话少说,直奔主题——VC6.0中创建动态链接库。

作为客户与后台的中介,为了更好的调节两⽅的关系,我明智滴选择了webservice以及动态链接库。

在与客户c++使动态链接库⽅式,⽽与后台java,使⽤webservice来交流沟通。

既然有了动态链接库,肯定⼤家会想到静态链接库。

呵呵,这个是相对的。

那这两者有什么区别呢?那⼜为静态链接库:是把lib⽂件也打包到了exe⽂件中。

动态链接库:没有把lib⽂件打包到exe⽂件中,若是使⽤,则直接加载卸载相应的dll⽂件。

并且,静态链接库中不允许包含静态链接库和动态链接库,⽽动态链接库中是允许包含静态链接库和动态链接库的。

因为⼩弟封装的dll中是调⽤客户的dll,并且有可能包含另外⾃⼰的动态链接库。

鉴于此,⼩弟选择了动态链接库。

还有⼀点是,动态链接库,也是分为三种情况的。

⼀是⾮MFC的dll(也就是控制台的dll),⼆是常规的MFC的dll(其中⼜分静态的dl和共享的dll),三是扩展的MFC 的dll。

并且MFC的dll可以被MFC程序或者控制台程序调⽤。

因为⼩弟封装的dll,需要供MFC程序调⽤,所以选择使⽤了MFC常规的dll。

并且使⽤控制台程序做测试。

⾸先,在新建⼯程中选择MFC AppWizard (dll)然后在头.h⽂件中,声明被外界调⽤的函数复制代码代码如下:extern "C" _declspec(dllexport) char* queryFunctionByFID(char* funcId);声明后,在cpp⽂件中,实现此函数。

编译器的自动生成工具LEX和YACC的使用方法

编译器的自动生成工具LEX和YACC的使用方法

编译器的自动生成工具LEX和YACC的使用方法一、词法分析程序产生器LEX的用法1.1 Lex概述Lex是一个词法分析器(扫描器)的自动产生系统,它的示意图如图1.1。

Lex源程序是用一种面向问题的语言写成的。

这个语言的核心是正规表达式,用它描述输入串的词法结构。

在这个语言中用户还可以描述当某一个词形被识别出来时要完成的动作,例如在高级语言的词法分析器中,当识别出一个关键字时,它应该向语法分析器返回该关键字的内部编码。

Lex并不是一个完整的语言,它只是某种高级语言(称为lex的宿主语言)的扩充,因此lex 没有为描述动作设计新的语言,而是借助其宿主语言来描述动作。

我们只介绍C作为lex的宿主语言时的使用方法,在Unix系统中,FORTRAN语言的一种改进形式Ratfor也可以做lex的宿主语言。

图1.1 Lex示意图Lex自动地表示把输入串词法结构的正规式及相应的动作转换成一个宿主语言的程序,即词法分析程序,它有一个固定的名字yylex,在这里yylex是一个C语言的程序。

yylex将识别出输入串中的词形,并且在识别出某词形时完成指定的动作。

看一个简单的例子:写一个lex源程序,将输入串中的小写字母转换成相应的大写字母。

程序如下:%%[a-z] printf(“%c”,yytext[0]+'A'-'a');上述程序中的第一行%%是一个分界符,表示识别规则的开始。

第二行就是识别规则。

左边是识别小写字母的正规式。

右边就是识别出小写字母时采取的动作:将小写字母转换成相应的大写字母。

Lex的工作原理是将源程序中的正规式转换成相应的确定有限自动机,而相应的动作则插入到yylex中适当的地方,控制流由该确定有限自动机的解释器掌握,对于不同的源程序,这个解释器是相同的。

1.2 lex源程序的格式lex源程序的一般格式是:{辅助定义的部分}%%{识别规则部分}%%{用户子程序部分}其中用花括号起来的各部分都不是必须有的。

使用lex与yacc构建简单计算器

使用lex与yacc构建简单计算器最近从本科时候的资料中翻到了编译原理的资料,翻到了部分lex 与yacc学习的资料和部分程序,后来又模仿老师给我们的例子程序写了一个简单的计算器,供初学者参考,也作为自己的一个学习笔记。

关于lex现在常用的是GNU的Flex,主页是/,其中有相关文档,以及程序源代码。

在 Windows下一版可以直接下载Flex.exe,lex主要是一个词法分析器他只要通过正则对字符串进行分析,生成一系列逻辑单元,通常被称为记号(token),lex的主要工作就是将字符串分解为token串,每个token代表特定的意义。

Yacc是一个LALR(1)的语法分析器,通过与lex相结合,就可以完成比较复杂的功能。

已实现的功能:带括号的整数加减乘除运算。

代码 scan.l[cpp]view plaincopy1.%{2.#include<string.h>3.#include "y.tab.h"4.extern int yylval;5.%}6.numbers ([0-9])+7.plus "+"8.minus "-"9.times "*"10.divide "/"11.lp "("12.rp ")"13.delim [ /n/t]14.ws {delim}*15.%%16.{numbers} {17.sscanf(yytext, "%d", &yylval);18.return INTEGER;19.}20.{plus} {return PLUS;}21.{minus} {return MINUS;}22.{times} {return TIMES;}23.{divide} {return DIVIDE;}24.{lp} {return LP;}25.{rp} {return RP;}26.{ws} ;27.. {printf("Error");exit(1);}28.%%Calcs.y[cpp]view plaincopy1.%{2.#include <stdio.h>3.#include "lex.yy.c"4.#define YYSTYPE int5.%}6.%token INTEGER PLUS MINUS TIMES DIVIDE LP RP7.%%mand : exp {printf("%d/n",$1);}9.exp: exp PLUS term {$$ = $1 + $3;}10.|exp MINUS term {$$ = $1 - $3;}11.|term {$$ = $1;}12.;13.term : term TIMES factor {$$ = $1 * $3;}14.|term DIVIDE factor {$$ = $1/$3;}15.|factor {$$ = $1;}16.;17.factor : INTEGER {$$ = $1;}18.| LP exp RP {$$ = $2;}19.;20.%%21.int main()22.{23.return yyparse();24.}25.void yyerror(char* s)26.{27.fprintf(stderr,"%s",s);28.}29.int yywrap()30.{31.return 1;32.}编译[cpp]view plaincopy1.flex scan.l2.yacc calc.y3.gcc -o mycalc.exe y.tab.c4.mycalc.exe <text1.txt5.pause其中lex 与 yacc 程序需要放在环境变量中的PATH下,gcc 可以换成其他的编译器,按照以上操作,一个简单的计算器就完成了。

配置VC6.0 和opencv成功


共四步骤。
1、安装vc6.0
2、安装opencv.exe 默认安装在C盘 opencv add环境变量一定要勾选。
3、配置:vc6.0
新建一个hello world win32 Console Application工程,
点击 工具——选项——目录 :
(1)可执行文件下添加C:\PROGRAM FILES\OPENCV\BIN
3、test1_lwb是测试是否成功的。
4、把 C:\Program Files\OpenCV\bin 这个安装目录里面的所有dll文件全部拷贝到 C:\WINDOWS\system32 这个目录里。这样就大功告成啦!!!!
以下不用了。如果上面配置有问opencv_1.0
2、看本目录里视频《opencv安装wmv》,详细配置opencv和vc6.0(看前十分钟就可以配置VC6.0,11分钟后 是配置VS2005了)
(2)include files下面添加
C:\PROGRAM FILES\OPENCV\CV\INCLUDE
C:\PROGRAM FILES\OPENCV\CVAUX\INCLUDE
C:\PROGRAM FILES\OPENCV\CXCORE\INCLUDE
C:\PROGRAM FILES\OPENCV\ML\INCLUDE
工程——设置——连接(里面的 对象/库模块) 是否包含以下内容:(如果不包含,就自己添加进去)
cv.lib cxcore.lib highgui.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib

VC++6.0_使用方法(图片解析,非常好懂)

第一部分C语言编程环境简介第1章计算机程序设计实验的一般步骤1.1 计算机程序设计实验的目的C语言程序设计是一门实践性很强的课程,该课程的学习有其自身的特点,学习者必须通过大量的编程训练,在实践中掌握程序设计语言,培养程序设计的基本能力,并逐步理解和掌握程序设计的思想和方法。

具体的说,通过上机实践,应该达到以下几点要求:1.使学习者能很好地掌握一种程序设计开发环境的基本操作方法(例如(Visual C++6.0),掌握应用程序开发的一般步骤。

2.在程序设计和调试程序的过程中,可以帮助学习者进一步理解教材中各章节的主要知识点,特别是一些语法规则的理解和运用,程序设计中的常用算法和构造及应用,也就是所谓“在编程中学习编程”。

3.通过上机实践,提高程序分析、程序设计和程序调试的能力。

程序调试是一个程序员最基本的技能,不会调试程序的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。

通过不断的积累经验,摸索各种比较常用的技巧,可以提高编程的效率和程序代码的质量。

下面介绍计算机程序设计实验的一般步骤:1.2 计算机程序设计实验的准备上机前需要做好如下准备工作,以提高上机编程的效率。

(1)在计算机上安装一种程序设计开发工具,并学会基本的操作方法。

(2)复习与本次实验相关的教学内容和主要知识点。

(3)准备好编程题程序流程图和全部源程序代码,并且先进行人工检查。

(4)对程序中有疑问的地方做出标记,充分估计程序运行中可能出现的问题,以便在程序调试过程中给予关注。

(5)准备好运行和调试程序所需的数据。

1.3 计算机程序设计实验的步骤(1)运行程序设计开发工具,进入程序设计开发环境。

(2)新建一个文件,输入准备好的程序。

(3)不要立即进行编译和连接,应该首先仔细检查刚刚输入的程序,如有错误及时改正,保存文件后再进行编译和连接。

(4)如果在编译和连接的过程中发现错误,根据系统的提示找出出错语句的位置和原因,改正后再进行编译和连接。

vc6.0下载、安装、及环境变量配置

vc6.0下载、安装、及环境变量配置Vc6.0下载地址/softdown/program/VC60sp6chs.rar粘贴到迅雷或者旋风中的新建任务中vc6.0的安装过程1.首先解压安装文件的压缩包,镜像iso文件可以用winrar解压;2.然后再选择安装的版本,VC6CN 表示的是中文版,VC6EN表示英文版。

3.打开VC6CN文件夹,其中有如下图标,鼠标双击。

4.如下图所示就是我们安装的第一步,单击下一步。

5.选择“接受协议”后单击下一步。

6.本软件属于破解版,故无需输入产品ID号码,直接单击下一步。

7.选择“安装visual c++6.0中文企业版(I)”,这就是我们要安装的程序,单击下一步。

8.安装位置自己改,单击下一步。

9.如下界面,单击“继续”,开始安装软件。

10.点击“确定”。

11.选择“是”,继续安装。

12.选择“typical”继续安装13.选择“ok”。

14.选择“确定”15.选择“确定”16.取消“安装MSDN”前面的勾号,选择“退出”。

17.选择“是”,取消MSDN的安装。

18.程序安装完毕,再电脑的“开始菜单”中,选择“所有程序”,在“Microsoft Visual C++ 6.0”目录中选择“Microsoft Visual C++ 6.0”就可以运行程序了。

也可以将这个图标发送到桌面快捷方式,这样就可以直接在桌面上运行程序。

配置环境变量想用CMD直接编译连接cpp形成exe文件,就像配置好jre后直接在DOS里运行java程序一样。

1、首先配置环境变量:在path中添加D:/Program Files(x86)/Microsoft Visual Studio /VC98/bin;D是我的VC的安装盘,你可以根据自己前边安装路径的修改但是现在在CMD里输入cl ***.cpp时,DOS里提示连CL的命令都不存在,原来在刚才路径的文件夹里少了一个文件mspdb60.dll为了证明这一点,可以点击X:/Program Files/Microsoft Visual Studio /VC98/bin 中的cl.exe,它会提示你缺少mspdb60.dll文件,建议重新安装。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

作者:QQ271353531一,Parser Generator 安装这里所用到的Parser Generator工具实际上是将YACC和LEX在windows的成功移植后的产物。

这个工具使用Y ACC和LEX能够生成Visual C++,Borland C++,Other C/C++以及相关Java代码。

下面介绍一下这个工具是如何生成代码并使用Visual C++编译的。

(可以在/downloads.htm下载Parser Generator)下载之后,解压缩,然后安装。

在安装了Parser Generator后,执行以下步骤,即可使VC++编译和链接由Parser Generator 产生的文件。

下边是关于编程环境配置的详细步骤:1,启动Parser Generator2,点击菜单中的Project选项,在子菜单中选择3,打开LibBuilder 选项窗口4,点击Properties选项,按照下图进行配置Script file name \Cpp\Script\msvc32.lbsName Visual C++(32-bit)Directory msvc32Compiler Version Version 6Unicode TrueTreat wchar_t as Built-in Type FalseCompiler Bin Directory 安装路径\Microsoft Visual Studio\Vc98\binCompiler Bin Directory(2) 安装路径\Microsoft Visual Studio\Common\MSDev98\bin Compiler Include Directory 安装路径\Microsoft Visual Studio\Vc98\include Compiler Include Directory(2) 无Compiler Library Directory 安装路径\Microsoft Visual Studio \Vc98\lib注:安装路径为相应VC 6.0安装目录5,配置好路径后,需要建立库文件,点击LibBuilder 选项窗口中的built 键注:整个过程需要持续几分钟,成功之后会自动停止。

6,建立Parser Generator工程文件(根据相应的需要进行选择)(1)Project->ParserWizard;(2)工程设定(一点需要注意语言可以选择C或是C++或java);(3)工程设定(默认创建带main函数的YACC文件和LEX文件);(4)YACC文件设定;(5)LEX文件设定;(6)编辑好代码后Project->RebBuild All,在你创建好的工程下自动生成第一步选定的语言文件。

二,VC 6.0配置示意网上的VC6.0配置大多不详细,而且配置很容易出错,此处以一个单独的LEX文件为例子来配置VC6.0.1,新建Parser Generator 点击project --> new2,填写工程名字随意取一个名字点击OK3,点击Project选项下的parserwizard 分析器向导选项这里需要填写工程存放的目录,以及工程名字。

4,选择配置这里选择只lex文件,并创建main程序,单线程模式点下一步5,点击完成6,程序会生成mylexer.l 的lex空文件,我们需要建立一个简单的lex文件已作说明将下列程序源代码覆盖生成的lex代码%{#include "stdio.h"int linenum;%}int [0-9]+float [0-9]*/.[0-9]+%%{int} printf("Int : %s/n",yytext);{float} printf("Float : %s/n",yytext);. printf("Unknown : %c/n",yytext[0]);%%showtitle(){printf("----- Lex Example -----/n");}int main(){linenum=0;yylex(); /* 进行Lex分析*/printf("/nLine Count: %d/n",linenum);return 0;}int yywrap(){return 1;}7,编译lex文件点击工具栏中的Build选项,中间那个图标8,编译完成应该是0个错误,0个警告9,配置VC 6.0启动vc 6.0 建立一个空的控制台工程点击Finish10,添加第8步编译好的C h文件打开Parser Generator 所建工程目录,应当有下列文件注:这里有因为建立了两次两个工程,实际上只有一个11,添加文件在VC 6.0中将source 和Header 相应文件夹处添加好相应的源码和头文件添加完成如下所示12,配置VC环境现在要设置环境变量了,首先要导入Parser Generator的库文件和源文件。

在工具->选项里要设置这些环境变量。

设置完这些文件后,还要在工程->设置里添加yl.lib库:在预编译选项下添加YYDEBUG然后点击OK 完成13,编译生成的C程序一般不会有错误如果编译的有错误,下面有一些常见错误的处理方式error LNK2001: unresolved external symbol _main解决办法(zz)error LNK2001: unresolved external symbol _main解决办法解决外部符号错误:_main,_WinMain@16,__beginthreadex -!t'my`yK在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有柚煤孟钅坎问? 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有: m1+4#'libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main (gd){jLIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 OuR5T>> msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16 -*_g+&Us1nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex }t,6 oTnafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex <u%N(=9]wpN"w"1. Windows子系统设置错误, 提示: )WA5FzPLwlibcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main *+oJ(e4f{'{1]\Windows项目要使用Windows子系统, 而不是Console, 可以这样设置: *^'y#/Dgz !DF-%3|[Project] --> [Settings] --> 选择"Link"属性页,Qo!在Project Options中将/subsystem:console改成/subsystem:windows T`H.k"Y{Xn?{t-*{2. Console子系统设置错误, 提示: vwK 7b0MLIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 4Y~E`L0,8%P ><"控制台项目要使用Console子系统, 而不是Windows, 设置: *Cl5Y':|hsipSn4_[Project] --> [Settings] --> 选择"Link"属性页, WveN']q-\在Project Options中将/subsystem:windows改成/subsystem:console BR4C@Z1 vBkC&3. 程序入口设置错误, 提示: dy2$&$=msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16 s P.>uExtG- (k~1q通常, MFC项目的程序入口函数是WinMain, 如果编译项目的Unicode版本, 程序入口必须改为wWinMainCRTStartup, 所以需要重新设置程序入口: r#~P5[aVOs hl6 i[Project] --> [Settings] --> 选择"Link"属性页, "1zk_#B*在Category中选择Output, p HGRL再在Entry-point symbol中填入wWinMainCRTStartup, 即可>IC}SZF)c[@\.dm4. 线程运行时库设置错误, 提示: X;t_- fnafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex AmiBqZTpnafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex sz 23_{c?oz! {Fd-这是因为MFC要使用多线程时库, 需要更改设置: L a-Y,1x](uAk>h^pbM[Project] --> [Settings] --> 选择"C/C++"属性页, '%ET|1#SO在Category中选择Code Generation, ;Y-M)k(再在Use run-time library中选择Debug Multithreaded或者multithreaded 0v~5<Y'Z咸鱼游侠(75374355) 12:11:11 <mW-.@e5_其中, W_qa?JvSingle-Threaded 单线程静态链接库(release版本) Kh4w QMultithreaded 多线程静态链接库(release版本) |F]g[En 4multithreaded DLL 多线程动态链接库(release版本) s-'qYgA6pDebug Single-Threaded 单线程静态链接库(debug版本) _ 7w_./y-Debug Multithreaded 多线程静态链接库(debug版本) <[ ePw-Debug Multithreaded DLL 多线程动态链接库(debug版本) H8V/O9|(9^x@/单线程: 不需要多线程调用时, 多用在DOS环境下/PJ|d5多线程: 可以并发运行clUdag,C静态库: 直接将库与程序Link, 可以脱离MFC库运行X]pEmHl动态库: 需要相应的DLL动态库, 程序才能运行\n{&_:b+qrelease版本: 正式发布时使用9J;ZZ/3debug版本: 调试阶段使用k9PoFC#k14,测试程序程序上可以输入一些字符,如果出现图是结果,即为配置成功。

相关文档
最新文档