visual C++ 编译中一些问题及解答

使用visual c++ 6.0编译的时候弹出这个错误

1) error LNK2001: unresolved external symbol _WinMain@16

一,问题描述

error LNK2001: unresolved external symbol _WinMain@16debug/main.exe:fatal error LNK 1120:1 unresolved externals error executing link.exe;

二,产生这个问题可能的原因

1, 你用vc建了一个控制台程序,它的入口函数应该是main, 而VC的参数设置里面使用了WinMain.

2.  你用vc打开了一个.c/.cpp 文件,然后直接编译这个文件,这个文件中使用了WinMian而不是main作为入口函数。vc这时的默认设置是针对控制台程序的,也就是vc的参数设置里是认为main 入口的。

说来说去就是一个匹配问题,因为所有的函数都是从main 或者WinMain入口的,但是针对某一个函数来说,入口是唯一的,并且要和编译器中的设置相同,这个问题就是设置不同导致的。

三, 解决方法

1.进入project->setting->c/c++, 在category中选择preprocessor,在processor definitions中删除_WINDOWS, 添加_CONSOLE

2.进入project->setting->Link, 在Project options中将/subsystem:windows.改为/subsystem:console

3.保存设置,Rebuild All. 

主要区分一个是window的函数,一个是控制台console的

 

2) Command line error D2027 : cannot execute 'c1'

如果执行的文件后缀名为.c,改成.cpp就可以了

3)error   C2664:   'strncpy'   :   cannot   convert   parameter   1   from   'unsigned   char   [16]'   to   'char   *'

函数strncpy在使用的时候,如果两个参数都是char的,就给出这样的错误,只需要把第一个强制转换 (char *)就可以了

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值