欢迎来到天天文库
浏览记录
ID:14213427
大小:41.50 KB
页数:7页
时间:2018-07-26
《c++builder建立及调用dll》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C++Builder建立及调用DLLDLL简称动态链接库,是Windows中程序的重要组成部分。想象一下,一个程序需要多人共同完成开发,怎么个共同法?这时我们就要考虑把程序分为好几个模块,团队每一个成员开发一个模块。问题来了:如何将模块组合并成一个完整系统?还有,我们开发的软件需要不断升级,如何升级?难道每次非得把整个工程重新编译一次再发布给用户吗?解决这些问题的科学办法,就是开发动态链接库DLL。现在以开发myDLL.dll动态链接库为例,讲讲BCB中开发动态链接库的方法。1、新建立一个工程:File-New-Ot
2、her...在New卡中选择DLLWizard2、将工程存为myDLL.bpr3、在myDLL.cpp中写接口代码:////---------------------------------------------------------------------------#include#include#pragmahdrstop////------------------------------------------------------------------------
3、---//// ImportantnoteaboutDLLmemorymanagementwhenyourDLLusesthe//// staticversionoftheRunTimeLibrary://////// IfyourDLLexportsanyfunctionsthatpassStringobjects(orstructs///// classescontainingnestedStrings)asparameterorfunctionresults,//// youwillneedtoadd
4、thelibraryMEMMGR.LIBtoboththeDLLprojectand//// anyotherprojectsthatusetheDLL.YouwillalsoneedtouseMEMMGR.LIB//// ifanyotherprojectswhichusetheDLLwillbeperformingnewordelete//// operationsonanynon-TObject-derivedclasseswhichareexportedfromthe//// DLL.AddingME
5、MMGR.LIBtoyourprojectwillchangetheDLLanditscalling//// EXE'stousetheBORLNDMM.DLLastheirmemorymanager.Inthesecases,//// thefileBORLNDMM.DLLshouldbedeployedalongwithyourDLL.//////// ToavoidusingBORLNDMM.DLL,passstringinformationusing"char*"or//// ShortStringp
6、arameters.//////// IfyourDLLusesthedynamicversionoftheRTL,youdonotneedto//// explicitlyaddMEMMGR.LIBasthiswillbedoneimplicitlyforyou////---------------------------------------------------------------------------extern"C"__declspec(dllexport)__stdcallintmyAdd(
7、int,int);extern"C"__declspec(dllexport)__stdcallAnsiStringaboutMe(void);intadd(intn1,intn2);#pragmaargsusedintWINAPIDllEntryPoint(HINSTANCEhinst,unsignedlongreason,void*lpReserved){ return1;}////------------------------------------------------------------
8、---------------__declspec(dllexport)__stdcallintmyAdd(intn1,intn2){intT;T=add(n1,n2);returnT;}intadd(intn1,intn2){returnn1+n2;}__declspec(dllexport)__stdcallAnsiStringaboutM
此文档下载收益归作者所有