1

自分のライブラリを自分のプロジェクトにリンクしようとすると、次のエラーが表示されます。

.\main.cpp(10) : warning C4091: 'extern ' : ignored on left of 'Hamster' when no variable is declared

main.obj : error LNK2001: unresolved external symbol "public: void __thiscall Hamster::SetHealth(int)" (?SetHealth@Hamster@@QAEXH@Z)

どうすればいいのか全くわかりません。私はネットで解決策を探していましたが、結果はありませんでした。

(Visual Studio C++、MS Windows XP を使用してコンパイル)

静的ライブラリのソース:

struct Hamster
{
public:
    int Health;

    void SetHealth(int newHealth)
    {
        if(newHealth <= 100 && newHealth > 0)
        this->Health = newHealth;
    }
};

コンソール プログラムのソース

#include <iostream>
using namespace std;

#pragma comment(lib, "../Release/mylib.lib")

extern struct Hamster
{
public:
    int Health;
    void SetHealth(int newHealth);
};

void main()
{
    Hamster White;
    White.SetHealth(100);

    cout << White.Health << endl;
}

見て、何が間違っているのか説明していただけますか?前もって感謝します。

4

3 に答える 3

2

関数宣言を の外に移動してstruct、「インライン」関数にならないようにすることもできます。

于 2013-05-05T16:53:15.957 に答える