使用C++Builder写DLL文件的过程详述-创新互联

打开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许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

分享标题:使用C++Builder写DLL文件的过程详述-创新互联
文章网址:https://www.cdcxhl.com/article46/dhophg.html

成都网站建设公司_创新互联,为您提供外贸网站建设微信公众号电子商务响应式网站品牌网站设计ChatGPT

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

商城网站建设