读书人

CB生成DLL时哪个编译选项可以去掉前

发布时间: 2012-03-13 11:21:12 作者: rapoo

CB生成DLL时,哪个编译选项可以去掉前缀下划线(_)??
我不想修改源代码。

应该有这个开关的吧。

[解决办法]
C++Builder里面都可以从项目设置中更改默认的函数调用规范,改成__stdcall试试看。
在C++ Builder中C调用规则是缺省的设置,可以通过Project的Option菜单在Advanced Compiler标签中来改变缺省设置
[解决办法]
我加了以下 project.def 文件到工程中

LIBRARY BCBDLL.DLL

EXPORTS
BCBDllFastcall = @BCBDllFastcall
BCBDllCdecl = _BCBDllCdecl
BCBDllStdcall = BCBDllStdcall

最后导出多了两个函数(用VS6带的 depends 查看)
BCBDllStdcall
_BCBDllCdecl
@BCBDllFastcall
___CPPdebugHook
BCBDllFastcall
BCBDllCdecl

我的代码

C/C++ code
/*************************************************************************  Function name   : BCBDllStdcall*  Description     : BCB Dll by __stdcall mode*  Parameters      : -*  Returns         : LPSTR*  Author          : Behard* ----------------------------------*  Date     By       Description* ----------------------------------*  05Mar03  Behard   Created.************************************************************************/extern "C" __declspec(dllexport) LPSTR __stdcall BCBDllStdcall(void){    static char strRetStdcall[256] = "BCB Dll by __stdcall mode is OK!";    return strRetStdcall;} /*************************************************************************  Function name   : BCBDllCdecl*  Description     : BCB Dll by __cdecl mode*  Parameters      : -*  Returns         : LPSTR*  Author          : Behard* ----------------------------------*  Date     By       Description* ----------------------------------*  05Mar03  Behard   Created.************************************************************************/extern "C" __declspec(dllexport) LPSTR __cdecl BCBDllCdecl(void){    static char strRetCdecl[256] = "BCB Dll by __cdecl mode is OK!";    return strRetCdecl;} /*************************************************************************  Function name   : BCBDllFastcall*  Description     : BCB Dll by __fastcall mode*  Parameters      : -*  Returns         : LPSTR*  Author          : Behard* ----------------------------------*  Date     By       Description* ----------------------------------*  05Mar03  Behard   Created.************************************************************************/extern "C" __declspec(dllexport) LPSTR __fastcall BCBDllFastcall(void){    static char strRetFastcall[256] = "BCB Dll by __fastcall mode is OK!";    return strRetFastcall;} 

读书人网 >C++ Builder

热点推荐