我正在调试一些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有关这些错误的问题,但似乎没有一个清楚地解释我为什么会得到这些错误。他们似乎都暗示编译器可能在错误的位置,但如果我撤消我的更改,那么代码编译没有任何问题,并且我没有告诉编译器在构建代码时使用其他任何地方我的改变......
答案 0 :(得分:0)
void DataStore :: setEraseSelected(int);
传递该变量