VC ++ LNK2001:仅在64位编译时未解析的外部符号

时间:2009-08-19 16:28:14

标签: c++ visual-c++ 64-bit

我已经制作了一个在32位模式下编译的dll,但是在64位模式下编译时(在32位盒子交叉编译和本机64位盒子上)我得到了上述错误。 它抱怨的符号如下:

"struct return_info_ * __cdecl patch_file(char *,char *,char *)"

我是C ++的新手,但我认为我已正确定义了结构和签名。 结构“return_info_”定义如下:

typedef struct return_info_
{
    char *message;
    int code;
} return_info;

在同一个标​​题中,我有函数的签名:

return_info* patch_file(char* oldfile, char* newfile, char* patchfile);

这都是本机c / c ++代码,它被编译为静态链接库。然后我有我们的主库链接到这个并且是clr兼容的二进制文件。有什么想法为什么64位编译器会抛出这些错误?

1 个答案:

答案 0 :(得分:1)

标题中的声明看起来是正确的,但由于某种原因,在64位版本中,未找到实际的实现。

这是在您的图书馆中定义的吗?它的64位版本可能没有正确编译。

如果这是一个属于您的应用程序的函数,请确保正确的源文件也包含在64位构建过程中。