BCB日常使用小集锦

时间:2022-07-01 05:15:05
1、BCB 编辑快捷键

左/右移 块代码

选中 块代码
1 CTRL+ SHIFT+ I 是整片往右移,
2 CTRL+ SHIFT+ U 是整片文字往左移

2、得到执行程序的当前路径

ExtractFileDir(Application->ExeName);


3、循环中响应其它操作

在循环内加入Application->ProcessMessage()这一句。

4、向外部提供dll函数标准windows格式

extern "C" __declspec(dllexport) __stdcall __int32 Fun(__int32 n32_i);

5、从外部dll输入函数标准windows格式

extern "C" __declspec(dllimport) __stdcall __int32 Fun(__int32 n32_i);

6、对DLL的调试

RUN/PARAMETERS 中填上调用该DLL的 *.exe。

7、使用*.chm帮助文件

ShellExecute(NULL,NULL,帮助文件的路径,NULL,NULL,SW_SHOWNORMAL);


8、PB_C数据类型转换表

PB_C数据类型转换表 MICROSOFT PB(16Bit) PB(32Bit)
Bool Boolean Boolean
Byte, Char Char Char
Char* Ref string Ref String
Colorref Uint Ulong
Double Double Double
Dword Uint Ulong
Float N/A N/A
Handle Uint Ulong
Hdc Uint Ulong
Hfile Uint Ulong
Hinstance Uint Ulong
Hwnd Uint Ulong
Int Int Int
Long Long Long
Lparam Uint Ulong
Lpbyte Ref Int Ref Long
Lpcwstr Ref Blob Ref Blob (Unicode use ToUnicode())
Lpcvoid Ref String Ref String
Lpdword Ref Uint Ref Ulong
Lpfiletime Ref Time Ref Time
Lpint Ref Int Ref Long
Lpstr,Lpcstr Ref String Ref String
Lpvoid Ref Structstruct_inst Ref Struct struct_inst
Lpword Ref Int Ref Ulong
Mcierror Long Long
Pbyte Ref Int[#] Ref Long[#]
Short Int Int
Structure Ref Struct struct_inst Ref Struct Struct_inst
Uint Uint Uint
Void** SUBROUTINE SUBROUTINE
Word Int Long
Wparam Uint Ulong






9、使用CB内存漏洞工具

选中Progect/Option->CodeGuard

支持环境CG32.LIB/CG32.DLL

10、MFC基本运行库目录
mfc42.dll
MFC42D.DLL
MFCD42D.DLL
MFCN42D.DLL
MFCO42D.DLL
MSVCP60.DLL
MSVCP60D.DLL
MSVCRTD.DLL
NTDLL.DLL


11、数据库连接测试(ADO)

建一文件,TestDataBase.udl,内容空。
双击,按照提示操作。


12、编译器设置

Project|Options

Compiler(编译)
"Full debug"(完全调试模式)
"Code optimization"(代码优化)

"debugging"(调试)
"Debug information"(调试信息)
"Line number information"(行数信息)
"Disable inline expansions"(禁用内联扩展)

"Pascal"标签

"Optimization"优化
"debugging"(调试)

"Linker"(链接)
"Create debug information"(生成调试信息)
"Don’t generate state files"(不要生成状态文件)
"Use dynamic RTL"(使用动态RTL)

"Directories/Conditionals"(路径/条件)

"Packages"(程序包)
"Build with runtime packages"(带运行时程序包编译)


Tools|Debugger Options
Integrated debugging"(集成调试器)

Project|Build All(彻底的编译)



13、设置RTL

C builder 有几种运行时库,多线程静态链接库,单线程静态链接库 以及动态的,含有

VCL的,下面介绍多线程静态链接库,单线程静态链接库 是没有VCL的,VCL中自动 包含多线程。

Use RTL multi-threaded static library 使用多线程静态链接库

到*.bpr 中,按下面的修改即可。
<CFLAG1 value="-tWD -tWM -Od -H=$(BCB)libvcl50.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c"/>
<ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32mt.lib"/>

Use RTL single-threaded static library 使用单线程静态链接库

到*.bpr 中,按下面的修改即可。

<ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32.lib"/>

14、CODEGUARD调试器

库文件CG32.LIB/CG32.DLL
一、编译 (Project/Option-> CodeGuard)
二、运行(Tools/CodeGuard Configuration)
文件为*.CGI
日志文件中,文件名为 *.CGI。用 View/Debug Window/CodeGuard Log察看或者记事本。