提問者的 C++ 專案在 VC6.0 下編譯報出大量錯誤,核心原因集中在三點:vector 模板未正確引入命名空間、頭文件中全域變數定義導致重複定義、以及 .cpp 中使用未聲明的標識符。
vector 識別符未找到// 頭文件中
#include <vector>
// 缺少 using namespace std; 或 std::vector
vector <strTargetState> vTargetState; // 錯誤:vector 屬於 std 命名空間
修正: 改為 std::vector<strTargetState> vTargetState; 或在頭文件頂部加入 using namespace std;(不推薦在頭文件中使用)。
頭文件 chuopaosheng721.h 中直接定義了全域變數:
vector <strTargetState> vTargetState; // 每個包含此頭文件的 .cpp 都會定義一份
strSensorLocate strSensor1, strSensor2, ...;
修正: 頭文件僅用 extern 宣告,.cpp 中定義:
// .h
extern std::vector<strTargetState> g_vTargetState;
extern strSensorLocate g_strSensor1;
// .cpp
std::vector<strTargetState> g_vTargetState;
strSensorLocate g_strSensor1;
.cpp 中使用未聲明的 vTargetState因頭文件中定義有誤,導致 CHuoPaoSheng721.cpp 看不到正確聲明,產生 undeclared identifier 及後續 .size()、[] 操作錯誤。
#pragma once 或宏防衛防止重複包含。修正上述三點後,29 個錯誤多數將消失,專案可成功編譯。