私は C++ の初心者で、単純な構造体を含む C++ の小さなヘッダー ファイルしか持っていません。
PGNFinder.h:
#ifndef PGNFINDER_H
#define PGNFINDER_H
struct Field
{
int Order;
string Name;
//more variables but doesn't matter for now
};
#endif
これにより、次のエラーが発生します。
error C2146: syntax error : missing ';' before identifier 'Name'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
次のように変更すると:
struct Field
{
int Order;
std::string Name;
};
.exe ファイルと .obj ファイルでエラーが発生する
error LNK1120: 1 unresolved externals (in the .exe file)
error LNK2019: unresolved external symbol "int __cdecl Convert::stringToInt(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?stringToInt@Convert@@YAHV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function "private: void __thiscall CAN::calculateMessageLength(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?calculateMessageLength@CAN@@AAEXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
そして追加すると
#include <string>
に戻ります
string Name;
最初と同じエラーが発生します。では、ヘッダー ファイルが int と string を認識できないのはなぜでしょうか?
助けてくれてありがとう :)