本工程A编译通过,生成dll,其他依赖该dll的的工程B无法编译通过,报语法错误,例如error C2143: syntax error: missing ';' before '('

现象:

本工程A编译通过,生成dll,其他依赖该dll的的工程B无法编译通过,报语法错误,例如error C2143: syntax error: missing ';' before '('_第1张图片

分析:

本工程A中有预编译,所以在该文件中虽然没有相关数据类型的头文件定义,但在stdafx.h文件中预定义了相关头文件,例如#include    #include 等,因此本工程仍然可以编译通过,但其他工程B编译时会找不到该类型的定义,导致编译错误。

本工程A编译通过,生成dll,其他依赖该dll的的工程B无法编译通过,报语法错误,例如error C2143: syntax error: missing ';' before '('_第2张图片

解决方法:

在报错的头文件汇中include相应数据类型的头文件,并使用相应数据类型的命名空间。

例如:

#include

#include

#include

#include

#include

#include

#include

using namespace std;

你可能感兴趣的:(编译错误,预编译)