十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
一、带窗体的dll创建
创新互联建站专注于企业全网整合营销推广、网站重做改版、沂南网站定制设计、自适应品牌网站建设、成都h5网站建设、商城网站开发、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为沂南等各大城市提供网站开发制作服务。
1、先新建 类库(testdll),在项目中添加两个窗体form1(主窗体)、form2,为了与后面的调用区分分别命名为fm1,fm2;并在fm1窗体中添加一个按钮用来调用fm2如下图
2、在fm1窗体代码中先引用fm2, 按钮代码调用fm2.如图
3、生成dll,(class1.vb中不需要写任何代码)
二、调用dll
1、新建 一个windows应用程序并添加一个按钮用来调用dll中的窗体,选 择 “项目”-“添加引用”,选择刚才创建的testdll
2、窗体代码中先引用testdll,再定义一个testdll中的fm1对象,最后执行对象的show方法
3、运行结果如下:
上级目录不可以,但是为了保证程序路径改变,引用不会被破坏。可以有几个方法:
1.将DLL文件放在程序同级目录
2.将DLL文件放在程序子目录
3.将DLL文件放在System32目录下(系统目录,可以直接引用DLL)
4.可以将DLL文件打包成资源文件,融合到EXE程序中,每次执行判断同级目录是否有DLL文件,不存在,释放资源文件。
如果DLL不是你写的,且你要调用的函数不是__stdcall声明,VB直接调用是会报错的
如果DLL是你写的,注意调用约定问题,并看以下代码
***************************************************
以下是DLL代码
.cpp里这么写
extern "C"__declspec(dllexport) void __stdcall HelloWorld()
{
MessageBox(NULL,"HelloWorld","HelloWorld",NULL);
}
.def里这么写
LIBRARY "XXXX"
EXPORTS
; 此处以下添加
HelloWorld@1
*************************************************
vb里这么写
Public Declare Sub HelloWorld Lib "XXXX.dll" ()
然后调用就可以了,上面是VB的代码,或许VB.net的也差不多