我想使用某些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);
这一切都编译得很好,但链接器报告未解决的外部问题。所以很明显它没有看到命名空间和功能。我该如何解决?
作为一个额外的问题 - 如果我以多种形式使用这样的函数集,它应该只编译一次并正确重用(我猜它不会有多个相同函数的副本?)