我在我的DLL中编写自己的String类,我希望能够像printf / etc那样格式化文本,但无论我如何尝试实现这一点,我都会得到"未解析的外部符号"在尝试链接我的DLL时使用省略号的函数,尽管它们已被定义。我尝试在String类中实现字符串格式化程序作为构造函数,如下所示:
class DLLEXP String
{
public:
String();
String(const String &other);
String(const String &format, ...);
// more member funcs
}
我也尝试在单独的类StringFormat中实现它作为构造函数:
class DLLEXP StringFormat
{
public:
StringFormat();
StringFormat(const StringFormat &other);
StringFormat(const String &format, ...);
};
class DLLEXP String
{
public:
String();
String(const String &other);
String(const StringFormat &format);
// more member funcs
};
我也尝试过常规功能:
DLLEXP String StringFormat(const String &format, ...);
甚至:
DLLEXP char* __cdecl StringFormat(const char *format, ...);
从DLL中正确导入变量参数函数是否存在某种秘密,或者在Windows上这是不可能的?一旦删除省略号,上述每个功能都能完美运行......但我需要这些功能。这些函数在Linux上的共享库中也能正常工作。我已经把头发撕了好几个小时了,所以非常感谢任何帮助。
提前致谢