1、DLL创建
File->New->Other,选择C++ builder->Dynamic Library,选择C++,Visual ComponentLibrary。
2、DLL的代码输写
主头文件,声明和定义导出结构体,声明导出类。导出类前加extern "C"修饰,类中的函数前不再需要加extern "C"。
主CPP文件,如未声明导出类,直接写导出函数定义,导出函数需用 extern "C" 声明,加 __declspec(dllexport) 修饰,函数名前加__stdcall修饰表示Windows API默认调用方式。
如下:
extern "C" __declspec(dllexport) HRESULT __stdcall CreateEmployeeInfo(int nID,char *pName,char *pPhone);
主CPP文件中如果需要调用其实单元的CPP文件,需要引入该单元的头文件。
总结:
DLL文件编写‘:创建DLL,在头文件中声明导出类,编写导出函数,也可以直接编写导出函数,在调用的时候创建调用类。
3、DLL调用
1.在头文件中私有蛮量中声明调用DLL的指针蛮量:HINSTANCE hdll;
2.在CPP文件中声明指向DLL中函数的指针,格式与函数声明一样
HRESULT __stdcall (*CreateEmployeeInfo)(int nSerial,char *pName,char *pPhone);
3.在窗体默认函数中调用DLL,用LoadLibrary 加载DLL,用GetProAddress获取函数
hdll = NULL;
(FARPROC&)CreateEmployeeInfo = GetProcAddress(hdll, "CreateEmployeeInfo");
(FARPROC&)UpdateEmployeeInfo = GetProcAddress(hdll, "UpdateEmployeeInfo");
(FARPROC&)DeleteEmployeeInfo = GetProcAddress(hdll, "DeleteEmployeeInfo");
4.在事件中正常调用函数。