namespace
特定の機能をその機能とともに使用して、いくつかの形式で使用して、ある種の共有機能を持たせたいと思います。ただし、リンカーに問題があります。
これが私がしたことです-新しいユニットを作成し、その中にヘッダーファイルに書きました:
#ifndef MyHeaderH
#define MyHeaderH
namespace MyHeader
{
enum { SOMETHING1, SOMETHING2 };
void SomeFunction(int Param);
}
#endif
もちろん、実際の関数はcppファイルで定義されており、上記は単にhファイルからのものです。
また、cppファイルは次のとおりです。
#pragma hdrstop
#include "MyHeader.h"
#pragma package(smart_init)
void SomeFunction(int Param)
{
//some code here
}
したがって、私のメインフォームForm1
では、上記をhppファイルに含めますForm1
MyHeader::SomeFunction(0);
これはすべて正常にコンパイルされますが、リンカーは未解決の外部を報告します。したがって、明らかに名前空間と関数が表示されません。どうすれば修正できますか?
追加の質問として-そのような関数セットを複数の形式で使用する場合、すべて一度だけコンパイルして正しく再利用する必要があります(同じ関数の複数のコピーがないと思いますか?)