我正在调试一些 C++ 软件,并且想稍微修改现有函数,以便它更改程序中其他地方使用的特定变量的值。
该函数当前定义如下:
void DataStore::setEraseSelected(){
...
// Function code here
...
}
就目前而言,该功能可以正常工作,没有任何问题。但是,我现在想修改该函数,以便它更改程序中其他地方使用的变量的值。为此,我尝试将变量作为参数传递给函数(我还更新了头文件以反映对函数的更改),然后为函数内部的变量赋值:
void DataStore::setEraseSelected(toAMS::DataMessage statusMsg){
...
// Function code here
...
statusMsg.CODE_ERASE = Types::Activated;
...
}
如前所述,我已将声明添加到头文件中,因此它现在具有带参数的函数的声明,以及不带参数的函数的声明:
void DataStore::setEraseSelected(toAMS::DataMessage statusMsg);
但是当我尝试构建代码(使用 Visual Studio 2010)时,我得到以下两个编译错误:
错误 LNK2001:未解析的外部符号“public void_thiscall DataStore::setEraseSelected(void)”(?setEraseSelected@DataStore::QAEXXZ)
错误 LNK1120:1 未解决的外部
第一个错误突出显示项目 .obj 文件,我已尝试删除并再次构建,但得到相同的错误,第二个错误突出显示项目 .exe 文件,我也尝试再次删除和构建,但得到相同的错误.
任何人有任何想法为什么?我在 SO 上查看了有关这些错误的问题,但似乎没有一个能清楚地解释我为什么会得到它们。他们似乎都表明编译器可能在错误的位置,但是如果我撤消我的更改,那么代码编译没有问题,并且我没有告诉编译器在使用我的更改构建代码时查看其他任何地方...