我正在尝试生成一个dll文件。 我有两个文件
DefFile.def
LIBRARY "square"
EXPORTS
square
\
funct.cpp
double __stdcall square(double & x)
{
return x*x;
}
该项目的名称为square,它是Visual Studio 2015中的Dll项目。
当尝试单独编译funct.file时,它可以工作。但是在尝试编译项目时,我遇到了两个错误:
Erreur C2143 erreur de syntaxe:absence de';'前卫 'chaîne'quarec:\ users \ hasna \ desktop \ projet vba -c ++ \ square \ square \ deffile.def 1
和
ErreurC4430spécificateurdetype manquant - int est pris en compte pardéfaut。 Remarque:C ++ ne prend pas en charge int par défautquarec:\ users \ hasna \ desktop \ projet vba -c ++ \ square \ square \ deffile.def 1
谢谢大家
答案 0 :(得分:0)
DEF文件语法在函数名称之前至少需要一个空格,例如
EXPORTS
square
但是,DEF文件中的名称是函数的修饰名称(请参阅Decorated Names),在这种情况下类似于?square@@YGNAAN@Z
。
由于您使用VC ++,导出函数的最简单方法不是通过DEF文件,而是Exporting from a DLL Using __declspec(dllexport):
__declspec(dllexport) double __stdcall square(double & x);