类封装成dll
VB操作Excel封装成DLL

VB操作Excel封装成DLL【前言】:网上由于封装的例子和教程太零散,故系统地揭开封装神秘的面纱。
【步骤】:1、启动VB6.0程序,新建“ActiveX DLL”。
2、勾选VB对Excel的引用:(1) Microsoft Excel x.0 Object Library ;(2) Microsoft Office x.0 Object Library 。
3、在VB中编写需封装的功能代码。
(1)将工程名“工程1”改为“符合功能的名字”——如“海纳百川测试”,将类模块名“Class1”也改为另一个“符合功能的名字”——如“删除重复项”。
(说明:符合命名规则任意改为某某名,改名主要是为了区别和方便调用)(2)编写功能代码。
Sub 删重()Dim dic As ObjectDim xlApp As Excel.Application '针对GetObject获取已打开的Excel对象'Dim xlApp As New Excel.Application '针对CreateObject创建新的Excel对象Dim exWb As Excel.WorkbookDim exSh As Excel.WorksheetDim r As LongSet xlApp = GetObject(,"excel.application") '获取已打开的Excel对象'Set xlApp = CreateObject("excel.application") '创建新的Excel对象Set exWb = xlApp.ActiveWorkbook '获取当前活动工作簿'Set exWb = xlApp.Workbooks.Add '创建新的工作簿Set exSh = exWb.ActiveSheet '获取当前活动工作表'Set exSh = exWb.WorkSheets(1) '设置第一个工作表Set dic = CreateObject("scripting.dictionary")Dor = r + 1dic(exSh.Cells(r, 1).Value) = ""Loop Until exSh.Cells(r, 1) = ""exSh.Cells(1, 3).Resize(dic.Count) =Application.Transpose(dic.keys)Set dic = NothingSet xlApp=NothingSet exWb=NothingSet exSh=NothingEnd Sub4、点击——“文件”——“生成海纳百川测试.dll”——保存到指定位置。
VBA封装为Dll的例子、方法与总结

VBA封装为Dll的例子、方法与总结制作DLL时,ThisWorkBook中的代码封装方法如下:1、打开VB6,新建Act iveX DLL。
修改“工程”名称和“类模块”名称为需要的名称。
本例中,工程修改为Test DLL,类模块修改为Test。
2、建立引用。
一般需要引用Microsoft Office 11.0 Object Library和Microsoft Excel 11.0 Object Library。
如果VBA代码中还有其他引用,在VB中也要对他们引用。
3、这一步就是具体封装代码了。
在刚才建立好的Test DLL中,将代码放入Test类模块中。
如封装ThisWorkBook中的Open事件:Sub wbk_open(EApp As Excel.Applicat ion, wb As Excel.Workbook, sh As Excel.Worksheet)'--VBA中需要封装的主体代码End Sub其中VBA中的代码为事先做好的要封装的代码,如下面这个例子:'打开工作薄后在当前的工作表A1中输入TestPrivat e Sub workbook_open()Cells(1, 1) = "Test"End Sub封装为DLL的代码为:Sub wbk_open(EApp As Excel.Applicat ion, wb As Excel.Workbook, sh As Excel.Worksheet)Cells(1, 1) = "Test"End sub现在在VB6中生成Dll,到此就完成封装了。
4、在VBA中使用封装的代码首先,在VBA中要引用刚才生成的Test Dll.dll。
然后新建一个模块,在其中定义这样一个变量T:Public T As New Test Dll.Test然后在ThisWorkBook的Open中引用Test Dll中的Test,代码如下:Privat e Sub workbook_open()On Error Resume NextT.wbk_open Applicat ion, ThisWorkbook, Act iveSheetEnd Sub这样每次打开Excel后,就在Sheet1的Cells(1,1)中输入“Test”。
QT自定义工程封装成DLL并在另一个QT程序中使用

QT自定义工程封装成DLL并在另一个QT程序中使用在Qt中,我们可以将一个工程封装成一个动态链接库(DLL),然后在另一个Qt程序中使用。
这样做的好处是可以将通用的功能封装成独立的库,提高代码的重用性和维护性。
以下是将一个Qt工程封装成DLL,并在另一个Qt程序中使用的步骤:步骤1:创建Qt工程首先,我们需要创建一个新的Qt工程,作为要封装成DLL的项目。
可以选择创建一个控制台程序或者窗口程序,具体根据需求来定。
步骤2:设计并实现功能在创建的工程中,我们需要设计并实现需要封装的功能。
这可以是一些通用的类、函数、或者其他的一些功能模块。
确保功能实现正确并且可靠。
步骤3:编译和链接在项目的.pro文件中,需要添加生成DLL的配置。
例如,在Windows平台上,可以添加如下代码:TEMPLATE = libTARGET = MyLibCONFIG += dll然后编译和链接工程,生成DLL文件。
步骤4:在另一个Qt程序中使用DLL在另一个Qt程序中,我们需要将DLL文件引入,并调用其中的功能。
首先,我们需要将DLL文件复制到程序运行的目录下,或者将其添加到系统的路径中。
然后,在.pro文件中,添加如下代码:LIBS += -L/path/to/dll -lMyLib其中,/path/to/dll是DLL文件所在的路径,MyLib是DLL文件的名称。
最后,在代码中,使用QLibrary类来加载DLL并调用其中的函数。
可以按照以下方式进行:QLibrary myLib("MyLib");typedef void (*MyFunction)(int);MyFunction myFunc = (MyFunction)myLib.resolve("myFunction");if (myFunc)//调用函数myFunc(123);else//加载DLL失败注意:在加载DLL时,一定要进行错误处理,以防DLL文件不存在或者加载失败。
VB操作Excel封装成DLL

VB操作Excel封装成DLL【前言】:网上由于封装的例子和教程太零散,故系统地揭开封装神秘的面纱。
【步骤】:1、启动VB6.0程序,新建“ActiveX DLL”。
2、勾选VB对Excel的引用:(1) Microsoft Excel x.0 Object Library ;(2) Microsoft Office x.0 Object Library 。
3、在VB中编写需封装的功能代码。
(1)将工程名“工程1”改为“符合功能的名字”——如“海纳百川测试”,将类模块名“Class1”也改为另一个“符合功能的名字”——如“删除重复项”。
(说明:符合命名规则任意改为某某名,改名主要是为了区别和方便调用)(2)编写功能代码。
Sub 删重()Dim dic As ObjectDim xlApp As Excel.Application '针对GetObject获取已打开的Excel对象'Dim xlApp As New Excel.Application '针对CreateObject创建新的Excel对象Dim exWb As Excel.WorkbookDim exSh As Excel.WorksheetDim r As LongSet xlApp = GetObject(,"excel.application") '获取已打开的Excel对象'Set xlApp = CreateObject("excel.application") '创建新的Excel对象Set exWb = xlApp.ActiveWorkbook '获取当前活动工作簿'Set exWb = xlApp.Workbooks.Add '创建新的工作簿Set exSh = exWb.ActiveSheet '获取当前活动工作表'Set exSh = exWb.WorkSheets(1) '设置第一个工作表Set dic = CreateObject("scripting.dictionary")Dor = r + 1dic(exSh.Cells(r, 1).Value) = ""Loop Until exSh.Cells(r, 1) = ""exSh.Cells(1, 3).Resize(dic.Count) =Application.Transpose(dic.keys)Set dic = NothingSet xlApp=NothingSet exWb=NothingSet exSh=NothingEnd Sub4、点击——“文件”——“生成海纳百川测试.dll”——保存到指定位置。
QT自定义工程封装成DLL,并在另一个QT程序中使用

QT⾃定义⼯程封装成DLL,并在另⼀个QT程序中使⽤⾸先新建⼀个Library⼯程命名为WidgetLib ,之后就默认下⼀步即可,如果需要添加额外的模块,可以在.pro⽂件中语句QT += 后⾯⾃⼰添加⼯程新建之后⽂件列表如下所⽰此时的⽂件中还没有ui⽂件,如果要封装带界⾯的动态库,需要右键点击⼯程->add new在新弹出的窗⼝中选择Qt -> Qt设计师界⾯类将其命名为与当前⼯程相同的名字,以覆盖之前不带ui界⾯的⽂件。
之后会弹出如下两个窗⼝,分别点击OK 和 Yes to All此时可以看到新的⼯程⽂件下⾯多出了 .ui⽂件不过此时的⼯程还不能直接打包成动态库,因为旧的⽂件被覆盖掉了,新的⽂件⽆法打包成动态库,因此需要对新的⽂件进⾏修改此时新的widgetlib.h⽂件内容如下#ifndef WIDGETLIB_H#define WIDGETLIB_H#include <QWidget>namespace Ui {class WidgetLib;}class WidgetLib : public QWidget{Q_OBJECTpublic:explicit WidgetLib(QWidget *parent = nullptr);~WidgetLib();private:Ui::WidgetLib *ui;};#endif// WIDGETLIB_H需要将其修改为下⾯的内容#ifndef WIDGETLIB_H#define WIDGETLIB_H#include <QWidget>#include "widgetlib_global.h"namespace Ui {class WidgetLib;}class WIDGETLIBSHARED_EXPORT WidgetLib : public QWidget{Q_OBJECTpublic:explicit WidgetLib(QWidget *parent = nullptr);~WidgetLib();private:Ui::WidgetLib *ui;};#endif// WIDGETLIB_H即:需要添加头⽂件 #include "widgetlib_global.h" 以及在类名前添加 WIDGETLIBSHARED_EXPORT 语句。
将VBA代码编译封装成为DLL动态链接库的方法

将VBA代码编译封装成为DLL动态链接库的方法在OFFIC E中使用V BA虽然方便,并且功能强大,但是VBA在代码的保护上却存在着缺陷。
如果不对VB A工程设置密码保护,代码很容易被人浏览乃至窃取。
而且即使设置了密码保护,也很容易被人破解。
因此,要想真正保护VBA代码,要想让别人无法或难于破解您的VB A代码,那么,我们可以将V BA代码编译成为DL L动态链接库,也就是封装成为DLL的意思,下面是与此相关的方法,希望对您有所帮助。
一、为什么要编译成为DLL我们知道,Visual C++、Visual Basic和C++ Builde r以及De lphi等编译器所编译出来的程序不容易被人破解(相对来说),这是因为代码被编译成了可执行文件或者动态链接库文件。
那么,我们是否可以将VBA代码封装到动态链接库文件中,然后用Wor d调用呢?回答是肯定的。
而且这样做还有一个好处,即可以加快代码的运行速度。
二、将VBA代码封装成动态链接库假如我们已经写好了一个VBA工程,而且运行无误。
①建立VB工程及一般性操作首先,我们需要两种工具,其中当然包括Micro softWord,另外一种是M icros oft Basic6.0。
打开Micr osoft Basic6.0,在“新建工程”中选取“Active XDLL”,新建一个工程。
在属性窗口中将工程名改为VBAP rj,类模块名改为VBACl s。
然后在“工程”菜单下打开“引用”,选取“Micros oft Office 11.0 Object Librar y”——这一步很是关键,切不可遗漏,然后保存工程。
下面我们所做的是向工程内添加代码。
将VBA工程中的一个名为Test过程的代码选定后复制,然后切换到V B编辑器,选中VB的工程管理器中的类模块V BACls,将代码粘贴至代码编辑窗口中,于是这段代码便成了类模块VBAC ls一个方法,然后将工程编译生成dl l文件(如果编译成功的话)。
利用VS2015将C++类封装成DLL动态链接库

利⽤VS2015将C++类封装成DLL动态链接库最近在进⾏OSG开发,想将⾥⾯模型导⼊部分重复使⽤的代码封装成DLL,这样后续不需要重复编写这部分代码了。
⽽C++类封装成DLL步骤如下:1、 VS2015新建⼀个Win32项⽬,应⽤程序类型选择DLL2、新建DLL项⽬后,项⽬解决⽅案⽂件结构如下:3、配置OSG库因为DLL使⽤到了OSG库,所以项⽬⾸先要配置OSG库,如下:4、打开OSG.h头⽂件,进⾏代码编写修改在头⽂件中加⼊OSG库的相关头⽂件,并且在类中进⾏函数和变量的声明,头⽂件如下(标红部分为添加代码):5、在源⽂件中OSG.cpp中,添加类的函数相应的实现,如下(标红部分为添加代码):6、在VS2015中按F7(⽣成解决⽅案)如果编译成功,则输出如下如果是在Debug环境下编译的,则在Debug⽬录下会⽣成DLL⽂件和lib⽂件;Release环境下同理。
另外,如果封装后的DLL是在x64环境下的项⽬使⽤,则此处需要在Debug下的x64环境下编译⽣成。
7、分别在DLL项⽬相应位置配置OSG.h、OSG.lib、OSG.dll三个⽂件,我们就能使⽤封装类的⽅法了(参看笔记:)。
PS:在编译成功⽣成DLL项⽬有,按Ctrl+F5 不调试执⾏,提⽰如下错误:原因:因为此DLL封装项⽬不是可执⾏项⽬,运⾏不了的。
只要编译成功后,就完成了DLL的封装。
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">。
VBA封装为DLL及调用

VBA封装为DLL及调用使用程序:1、Microsoft Office Excel 20032、Microsoft Visual Basic 6.0案例:在工作表的C1单元格得出A1单元格+B1单元格的值。
设计的VBA弋码:Sub Test()On Error Resume NextRange("C1") = Cells(1, 1) + Cells(1, 2)End Sub第一部分、使用VB6.0制作DLL文件一、启动VB6.0,新建一个ActiveX DLL工程:二、引用:在VB中对Excel的引用不同版本的EXCEL S “引用”窗口里显示的版本号也不同:EXCEL200(0 Microsoft Office 9.0 )EXCEL200(2 Microsoft Office 10.0 ),即ExcelXPEXCEL200(3 Microsoft Office 11.0 )EXCEL200(7 Microsoft Office 12.0 )EXCEL201(0 Microsoft Office 14.0 )EXCEL201(3 Microsoft Office 15.0 )三、修改ActiveX DLL 的工程名称和类模块名称四、编写代码:在代码窗口输入代码,过程名称为Test :Sub Test()On Error Resume NextDim VBt, YB ' 定义变量VBtSet VBt = GetObject(, "Excel.Application")' 使VBt 表示为EXCEL寸象Set YB = VBt.ActiveSheet ' 使YB表示为EXCEL勺当前工作表'注意要在对象前加上YB变量以表示是EXCEL!前工作表的对象YB. Range("C1") = YB.Cells(1, 1).Value + YB.Cells(1, 2).ValueEnd Sub五、设置工程属性(为使开发的程序更规范,可以对工程属性加以描述【非必要设置,可以省略】):六、保存工程、测试、生成DLL 文件:1、保存工程:保存本工程以作为将来修改代码和升级程序的需要;2、测试工程:执行快捷工具栏上的“启动”按钮,检查是否存在错误;3、生成DLL文件:制作DLL文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如果你的工作长期与某个领域相关,比如说长期做直接体绘制 (DVR)方面的开发,那么你可能经常使用自己的传递函数类,如果每一个工程你都把传递函数类的.h和.cpp文件添加进去会比较麻烦,其实,我们可以像 使用opengl的库那样来用你自己的类,做法就是把你写好的类封装成dll,具体做法如下:
第一步:制作dll
利用VC6新建工程时选择win32 dynamic-Link Library(空的工程),然后添加头文件和cpp文件。
假设你要封装的类的名成是TransferFunction,添加头文件 TransferFunction.h和TransferFunction.cpp到工程中。
并将TransferFunction.h修改成:
class __declspec(dllexport) TransferFunction
{
...
}
从而说明以后从dll要被导出的类是哪一个。
这样编译完就会产生TransferFunction.dll和TransferFunction.lib两个文件。
第二步:如何使用这个dll
当已经生成dll后,有两种方法可以在其它程序中调用dll中的类和成员函数:
方法一:
1)把TransferFunction.dll和TransferFunction.lib复制到调用程序的执行路径下,注意不是debug路径下。
2)在project->setting->link里添加TransferFunction.lib(或者用
#pragma comment(lib, "TransferFunction.lib") )
3)把TransferFunction.h中的__declspec(dllexport)改成
__declspec(dllimport)
然后复制到调用程序的执行路径下。
4)最后在主程序中就可以通过包含TransferFunction.h来使用TransferFunction类和它的成员函数。
方法二(推荐):
在方法一中,你每次建立一个工程都需要把
TransferFunction.dll,TransferFunction.lib,TransferFunction.h三个文件拷贝到工程里面 去,事实上这只发挥了dll对类的代码保护的功能,并没有多大的减轻编程人员的工作量,下面的方法可以减少编程人员的工作量,具体步骤:
1:将TransferFunction.dll扔到windows\system32下
2:将.TransferFunctionlib扔到VC的lib目录里
3:将方法一中的TransferFunction.h扔到VC的include目录里
4:同方法一的最后一步。
以后你就可以像使用Opengl的glut、glui等库一样使用你自己封装的一个经常复用的类了。