CB生成DLL时,哪个编译选项可以去掉前缀下划线(_)?该怎么处理
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++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; }