为什么C++builder写的dll导出的函数会有很多@@...@Initialize @@...@Finalize ___CPPdebugHook乱七八糟的函数?vc写的dll就没有这些!如果不要这些函数该怎么写?
Vc写的库一样会有这些东西,这和你使用__fastcall或__stdcall等方法有关,如果你DLL导出函数都使用标准C函数定义方式就没有这些“乱七八糟”的东西了。
如果不使用VCL就不会有@@...@Initialize @@...@Finalize
如果是Release版就不会有___CPPdebugHook
导出函数的格式大致如下:
extern "C" _declspec(dllexport)[返回值类别] _stdcall [函数名]([参数列表...])
例:
extern "C" _declspec(dllexport)int _stdcall ReturnInteger(const PChar Value)
{
int Result=0;
try
{
Result=StrToInt(AnsiString(Value));
}
catch(...)
{
Result=0;
}
return Result;
}