扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
打开C++Builder6集成开发界面,选择File-New-Other,弹出New Items对话框,选择DLL Wizard选项,在DLL Wizard对话框中选择Use VCL选项,点击OK按钮。进入界面后,此时工作空间名称和文件名称都是默认的,可以选择File-Save Project As重命名工作空间名称和文件名称等,当你新添加一个文件时,可以使用ctrl+s来重命名。
接下来往这个DLL项目中分别添加Form和Data Module。他们都是在File-New-Form 与 File-New-Data Module中添加,名称重命名可ctrl+s实现。首先添加Data Module,弹出一个界面,在工具栏的BDE一项拖拽Query和Database控件,并设置Database的属性选项中的LoginPrompt为false值,防止弹出登录数据库的界面。
以上都设置好后,还要设置一项,否则调用DLL文件是会报无法加载DLL文件。解决方法:创建DLL时编译链接时注意设置Project Options。Packages标签,去除Builder with runtime packages检查框;Linker标签,去除Use dynamic RTL检查框。其它选项说明,Directories/Conditionals可以设置生成DLL文件的最终路径,如我在Final output中输入../bin/,最后点击OK完成。
下面给出部分接口代码:
(1) DLL端接口代码extern "C" __declspec(dllexport) bool __stdcall SetInstChangeLogInit(AnsiString DBName,TStrings *Params,AnsiString areacode,AnsiString username,TComponent* Owner);
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, LPVOID lpvReserved)
{
return 1;
}
//---------------------------------------------------------------------------
bool __stdcall SetInstChangeLogInit(AnsiString DBName,TStrings *Params,AnsiString areacode,AnsiString username,TComponent* Owner)
{
//调用窗体的初始化函数,做些初始化操作
}
(2) 主调端接口代码
void __fastcall TFmMain::N33Click(TObject *Sender)
{
ReSet(Sender);
HINSTANCE hld;
bool (*SetInstChangeLogInit)(AnsiString DBName,TStrings *Params,AnsiString cAreaCode,AnsiString userName,TComponent* Owner);
hld=LoadLibrary("setInstChangeLog.dll");
if(hld)
{
(FARPROC &)SetInstChangeLogInit=GetProcAddress(hld,"SetInstChangeLogInit");
if(SetInstChangeLogInit)
{
if(!SetInstChangeLogInit(FmDm->Database1->DatabaseName,FmDm->Database1->Params,FmDm->AreaCode,FmDm->userName,this))
MessageBox(Handle,"模块中的函数执行错误(setInstChangeLog.dll)!!!","错误!",MB_OK|MB_ICONERROR);
}
else
MessageBox(Handle,"模块中的函数无法定位(setInstChangeLog.dll)!!!","错误!",MB_OK|MB_ICONERROR);
}
else
MessageBox(Handle,"此功能没有提供","错误! setInstChangeLog.dll!",MB_OK|MB_ICONERROR);
FreeLibrary(hld);
}
总结:注意属性栏的属性设置。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流