首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

CB生成DLL时,哪个编译选项可以去掉前缀下划线(_)?该怎么处理

2012-03-13 
CB生成DLL时,哪个编译选项可以去掉前缀下划线(_)??我不想修改源代码。应该有这个开关的吧。[解决办法]C++Bui

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;} 

热点排行