我正在使用 C++ Builder 11.2 并将以下
strings.rc
文件添加到我的项目中:
#define ID_TESTSTRING 1
STRINGTABLE
BEGIN
ID_TESTSTRING, "Just for testing"
END
在我的
Form1
(Unit1.cpp) 中,我使用以下代码:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
wchar_t resString[100];
LoadString(HInstance, ID_TESTSTRING, resString, 100); // undeclared identifier ID_TESTSTRING!
ShowMessage(resString);
}
问题是我收到此“未声明的标识符”错误。如果我用数字常量
ID_TESTSTRING
替换 1
那么一切都会按预期工作。为什么标识符无法识别?因为,我想在代码中使用 ID,而不是它们的数字常量。
标识符不会自动“导出”,也不会在所有源文件中创建为标识符。
您需要将
ID_TESTSTRING
宏定义放在单独的头文件中,并将其包含在资源文件和 C++ 源文件中