次のコードを取得しました。
FooClass.h
#pragma once
#include <string>
#include "StdAfx.h"
#include "FooClass.h"
#include <iostream>
#include "FooClass.h"
FooClass::FooClass(void)
{
}
FooClass::~FooClass(void)
{
}
int PrintMsg (std::string msg)
{
printf ("%s\n", msg);
return 1;
}
class FooClass
{
public:
FooClass(void);
~FooClass(void);
static int PrintMsg (std::string msg);
};
FooClass.cpp
CODETESTER.cpp
// CODETESTER.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "FooClass.h"
int _tmain(int argc, _TCHAR* argv[])
{
FooClass::PrintMsg ("Hi World!!");
return 0;
}
プロジェクトをビルドすると、次のエラーが発生します。
Erro 4 error LNK2019: símbolo externo indefinido "public: static int __cdecl FooClass::PrintMsg(class std::basic_string,class std::allocator >)" (?PrintMsg@FooClass@@SAHV?$basic_string@DU?$char_traits@ D@std@@V?$allocator@D@2@@std@@@Z) _wmain E:\2 を参照してください。MEZASOFT\DESENVOLVIMENTO\PROTOTIPOS\CODETESTER\CODETESTER\CODETESTER.obj CODETESTER
このテーマとヘルプに関するいくつかの記事を読みましたが、修正方法がわかりませんでした。
リンカに PrintMsg コードの場所を知らせるには .h では不十分であることはわかっていますが、どうすれば解決できますか。
これが基本的な質問である場合は申し訳ありません。私はずっと前に、優れた C プログラマーでした。私は C++ プログラマーとして戻ってきます。