我在互联网和stackoverflow上多次发现这个问题(请参阅我的问题的标题),尽管最常见的是与对象有关。这里没有对象。只是普通的C / C ++。 我尝试了大部分建议来解决它。没有任何效果。以下代码已降至最低,以隔离问题。 它是Visual Studio 2013,C ++。我想使用带有C语言编写的函数的DLL。下面是.h文件,名为Strings_LV_CPP.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,但没有区别。根据建议尝试了许多不同的选项和组合,但似乎错过了正确的选项和组合。没有结果,所以决定咨询我的同事们。
大多数人都有任何答案。
德克