函数 _main 中引用的未解析外部符号 [duplicate]

Unresolved external symbol referenced in function _main [duplicate]

提问人:TheUmpteenth 提问时间:3/3/2015 最后编辑:πάντα ῥεῖTheUmpteenth 更新时间:3/3/2015 访问量:1265

问:

我在互联网和stackoverflow上多次发现这个问题(请参阅我的问题的标题),尽管大多数情况下与对象有关。这里没有对象。只是普通的 C/C++。 我尝试了大多数建议来解决这个问题。没有任何效果。下面的代码已减少到最低限度以隔离问题。 它是Visual Studio 2013,C++。我想使用一个带有用 C 编写的函数的 DLL。 下面是名为 Strings_LV_CPP.h 的 .h 文件。

#pragma pack(1)

#ifdef __cplusplus
extern "C" {
#endif

typedef struct {
LStrHandle s;
} TStruct_String;

/*!
 * Write_Struct_String
 */
void __cdecl Write_Struct_String(char StringI[], TStruct_String *StructI, 
    TStruct_String *StructO);
#ifdef __cplusplus
} // extern "C"
#endif

#pragma pack(pop)

其次是主程序。

#include <windows.h> 
#include <Strings_LV_CPP.h>

int main()
{
char s[] = "STRING";
TStruct_String *CL;

CL = (TStruct_String *)malloc(sizeof(TStruct_String));
// void __cdecl Write_Struct_String(char StringI[], TStruct_String *StructI, TStruct_String *StructO)

Write_Struct_String(s, CL, CL);

return 0;
}

Build 生成的输出为:

1>------ Rebuild All started: Project: LVStructString, Configuration: Debug Win32 ------
1>LVStringApplication.cpp
1>LVStringApplication.obj : error LNK2019: unresolved external symbol _Write_Struct_String referenced in function _main
1>C:\Users\Werf\Documents\Local CPP projects\LVStructString\Debug\LVStructString.exe : fatal error LNK1120: 1 unresolved externals
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

Visual Studio:使用了 Visual Studio 的全新安装,创建了一个新的空白项目、控制台和 win32,但没有区别。按照建议尝试了许多不同的选项和组合,但似乎错过了正确的选项和组合。没有结果,所以决定咨询我的世界同事。

最有义务回答任何答案。

匕首

C++ visual-studio lnk2019 未解析外部

评论


答:

0赞 iwlagn 3/3/2015 #1

DLL 函数应使用 dllexport 和 dllimport。看看这个答案。