如何在DLL中创建带有变量参数的非成员函数?

时间:2014-10-19 18:05:35

标签: c++ dll printf unresolved-external variadic-functions

我在我的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上的共享库中也能正常工作。我已经把头发撕了好几个小时了,所以非常感谢任何帮助。

提前致谢

0 个答案:

没有答案