vc++6.0各种报错合集(附:VC++6.0调出打印窗口的方法)

时间:2023-03-09 18:21:00
vc++6.0各种报错合集(附:VC++6.0调出打印窗口的方法)

背景:

  由于VC++6.0对于现在的我来说,只是一个工具,暂时没有太多的时间分配到这块去深究它,由于不明其原理,因此也只是在此把错误积累下来,以备下次相同错误出现时能快速排除,节省时间。

正文

一、出现警告“warning c4273:inconsistent dll linkage”

  在报错的XX.h头文件中可以看到如下定义

#ifdef XXX_DLL_EXPORTS
#define XXX_API extern"C" __declspec(dllexport)
#else
#define XXX_API extern"C" __declspec(dllimport)
#endif

  解决方案:
  点击菜单栏,Poject --> Setting --> C/C++ --> General --> Preprocessor definitions中加上XXX_DLL_EXPORTS
  这样警告就消除了。

二、出现警告“warning C4805: '==' : unsafe mix of type 'int' and type 'const bool' in operation”

  只需要将"return true"改成"return TRUE"就OK了。“false”同理。

三、出现报错“error LNK2001: unresolved external symbol "函数名称"”

  出现这种错误,很大可能是DLL的“.h”文件内函数声明与“.cpp”文件内的函数不一致;

  我就出现了两种这种情况,

  第一种是在函数实现时多加了两个参数,声明时却未加,可是编译却能通过(WTF!?)。

  第二种是在函数声明的时候,没有加导入导出的标志 XXX_API,也能编译通过!放到APP却会报错。

附:VC6.0调出打印窗口的方法

  点击Project --> Setting --> Post-build Setup --> Post-build command(s):

  加入editbin /SUBSYSTEM:CONSOLE $(OUTDIR)\XXX.exe(可执行文件文件名),最后点击“Rebuild all”进行重新编译即可。

记录地点:深圳WZ

记录时间:2016年3月3日