-
vb重构c++项目
2015-07-16 11:48:521、vb工程中,Frm_xxx.vb应该是界面文件,打开之后可以看到类似于mfc的界面,双击打开响应函数。 2、Marshal.PtrToStructure 函数找了很久,查资料是“将数据从非托管内存块封送到新分配的指定类型的托管对象。”,...最近做一个重构项目,库是vb,有旧代码程序,要求做成mfc程序,中间遇上的问题就放在这里吧。
1、vb工程中,Frm_xxx.vb应该是界面文件,打开之后可以看到类似于mfc的界面,双击打开响应函数。
2、Marshal.PtrToStructure 函数找了很久,查资料是“将数据从非托管内存块封送到新分配的指定类型的托管对象。”,以前做c++没注意过,顺便了解了一下托管内存与非托管内存的区别。顾名思义,托管内存就是托别人管理的内存,非托管就是自己需要delete的内存数据。在vb里面用这个函数赋值过来,其实在c++里面就是一个指针问题,
-
05最简单的VB标准DLL工程.7z
2020-08-13 12:01:56VB6做的控件,又是标准DLL,又是COM对象,还可以单文件运行(exe),4种类型集一身,牛逼吧,具体大家可以尝试下。本例子COM对象和标准DLL二合一。 新建一个EXE工程,引用vbapi.dll这个COM对象 他又是标准DLL,又是... -
VB6.0源码:DLL文件的编译链接插件.rar
2019-07-09 22:30:18再次启动VB,建立一个ActiveX DLL程序,这个时候点主菜单"文件",可以看到"生成工程1.DLL(K)"和"选择DLL出口函数"菜单项目。 好了,大功告成,现在你的VB 6.0已经可以直接编译链接标准的DLL文件了,造作方法,... -
通过 VB5 创建 ActiveX DLL 文件并用 ASP 调用一例
2009-10-28 17:33:00新建一个工程,并双击新建工程窗口中 ActiveX DLL图标,VB将自动为项目添加一个类模块,并将该项目类型设置为ActiveX DLL。在属性窗口将类模块的名称属性改为clsDice。从工程菜单中,选择工程属性,将工程名称改为...本例是通过VB5.0创建ActiveX DLL文件,这个文件模拟了一个掷色子的过程。
新建一个工程,并双击新建工程窗口中 ActiveX DLL图标,VB将自动为项目添加一个类模块,并将该项目类型设置为ActiveX DLL。在属性窗口将类模块的名称属性改为clsDice。从工程菜单中,选择工程属性,将工程名称改为MyDLL。从文件菜单中,选择保存 clsDice,将类模块保存为myDice.cls。添加以下代码:
Option Explicit
Private Max, Point As Integer
Public Property Get Result() As Integer
Result = Point
End Property
Public Property Get Maxpoint() As Integer
Maxpoint = Max
End Property
Public Property Let Maxpoint(num As Integer)
Max = num
End Property
Public Sub Throw()
Randomize
Point = Int(Rnd * Max) + 1
End Sub
Private Sub Class_Initialize()
Max = 6
End Sub
这个类模块定义了clsDice对象的两个属性和一个方法,这些属性和方法模拟了掷色子的过程。其中Maxpoint属性表示色子的面数,加入 Property Let语句将使客户能修改色子的面数;Result属性表示最后掷出色子的点数;Throw方法代表掷色子的动作;Private Sub Class_Initialize语句将色子的面数缺省的设置为6面。
从文件菜单中,选择生成MYDLL.DLL并将它保存到适当的地方。至此,我们就创建了一个自己的DLL文件。
第二步要做的就是要在ASP文件中引用类clsDice。
ASP(活动服务器页面Active Server Pages)的所有代码都是在服务器上运行的,客户只能查看以HTML形式传回的结果。它使用“ <%”和“%> ”标记来标识脚本代码,并不传回客户端,在代码外部,使用HTML标记来标识内容。在下面Dice.asp的代码中使用了CreateObject函数创 建了一个clsDice对象实例,该对象来自于上面创建的ActiveX.DLL--MYDLL.DLL文件,下面的例子使用了VBScript脚本语 言。
<!--METADATA TYPE= "typelib " FILE= "Path/mydll.dll " -->
'装载 METADATA 标签中指定的类型库。 Path是mydll.dll在机器上存放的路径
<html>
<head> <title> 在ASP文件使用DLL </title> </head>
<body>
<%
On Error Resume Next ‘当程序出现意外错误时能继续执行
If Request.Form( "T1 ")= " " then
Session( "point ") = 6
Else
Session( "point ")=Request.Form( "T1 ")
End If
'用Session( "point ")来存放色子的面数
Set dice1=Server.Createobject( "MyDLL.clsDice ")
'使用set语句创建dice1对象,其中MyDLL是上面创建dll文件时的工程名称(注意:不是文件的名称),clsDice为类模块的名称。至此我们就可以用Maxpoint,Result和Throw属性(方法)来对dice1对象进行操作。
If Request.ServerVariables( "Request_Method ")= "POST " then
dice1.Maxpoint = Session( "point ") ‘设定色子的面数
dice1.Throw ’掷色子
%>
<form method= "POST " action= "dice.asp ">
<p> 当色子的面数为 <input type= "text " name= "T1 " size= "5 " value= <% = session( "point ") %> > 时 </p>
<p> <input type= "submit " value= "掷色子 " name= "B1 "> </p>
</form>
<p> 结果为: <% = dice1.Result %> 点 </p> ‘返回结果
<%
Else
dice1.Maxpoint = Session( "point ")
%>
<form method= "POST " action= "dice.asp ">
<p> 当色子的面数为 <input type= "text " name= "T1 " size= "5 " value= <% = session( "point ") %> > 时 </p>
<p> <input type= "submit " value= "掷色子 " name= "B1 "> </p>
</form>
<%
End If
%>
</body>转载于:https://www.cnblogs.com/top5/archive/2009/10/28/1591539.html
-
VS2010 VB.net安装包生成过程
2021-02-09 12:31:53①在vs2010 选择新建项目----其他项目类型----安装和部署----Visual Studio Installer----安装项目,如下图所示。 a、输入合适的安装包名称比如XXX_Install,解决方案名称会跟着变化; b、解决方案,一个是创建解决...在VS2010开发环境下,对VB.net安装包的生成过程进行详细的说明。
①在vs2010 选择新建项目----其他项目类型----安装和部署----Visual Studio Installer----安装项目,如下图所示。
a、输入合适的安装包名称比如XXX_Install,解决方案名称会跟着变化;
b、解决方案,一个是创建解决方案(将新建一个工程解决方案),另外一个是添加到解决方案(将该解决方案添加到已有的工程下)。
② 应用程序文件夹中点右键添加文件:表示添加要打包的文件,添加的文件一般是已经编译过应用程序的debug目录下的文件;
③ 若添加文件放在文件夹下,可以在应用程序文件夹点右键是添加文件夹,如下图所示,
④ 为了在开始菜单和桌面上能看到安装程序,需要创建应用程序的快捷方式,选择应用程序(即可执行文件程序集)点击右键选择创建快捷方式,命名为程序名称。
⑤ 将上面创建的快捷方式移动到用户的“程序”菜单和用户桌面上,同时在快捷方式的属性中选择ICON属性,添加合适的程序显示图标,该图标将作为程序在用户的“程序”菜单和用户桌面上显示的图标。
⑥ 添加卸载程序,选择应用程序文件下点击右键添加文件,在C:\Windows\System32目录下选择msiexec.exe应用程序,同时,安装上面的说明创建msiexec.exe应用程序的快捷方式,同时,点解ICON属性添加合适的图标;
⑦ 要使用msiexec.exe应用程序卸载程序,必须在其Arguments属性中输入/x {F7E7D124-A483-4D2D-B6AE-7FD8EBB9FC32},其中 {F7E7D124-A483-4D2D-B6AE-7FD8EBB9FC32}是程序的ProductCode,如下图所示;
⑧ 将msiexec.exe应用程序快捷方式和应用程序的快捷方式移动到用户的“程序”菜单,为了方便查看,可以讲生成的msiexec.exe应用程序快捷方式和应用程序的快捷方式移动到同一个文件夹下, 如下图所示。
这样,当安装完成程序时,在电脑的程序菜单中,会出现该文件夹,文件夹下包括应用程序的图标和卸载程序的图标,如下图所示。
⑨ 设置安装包的各种属性。
Author:软件作者;
InstallAllUsers:True,指定该包是为所有用户(True)还是只为进行安装的用户安装(False);
Manufacturer:公司名称,指定应用程序或组件制造商的名称;
RemovePreviousVersions:True,安装程序期间是否移除应用程序的早期版本。
另外,安装包的启动条件设置,选择安装包解决方案,点击右键在视图选项中选择启动条件,即.NET Framework的版本。
根据需要,选择合适的启动条件,即.NET Framework的版本。
另外,选择安装包解决方案的属性,在系统必备选项中,选择安装系统必备组件的安装程序,一般包括Microsoft .NET Framework和Windows Installer,同时制定系统必备组件的安装位置,勾选从与我的应用程序相同的位置下载系统必备组件选项(若电脑上已经有Framework可以不用设置这一步)。
⑩ 完成以上配置,点击安装包解决方案vb.net教程右键,点击重新生成选项,生成安装包,在解决方案文件夹下下,有生成的安装包安装文件,点击setup.exe即可进行程序的安装。
-
VB试题.doc
2012-12-15 21:16:571.工程文件的扩展名是( B )。 A.vbg B.vbp C.vbw D.vbl 2.在以下窗体中没有采用的控件是( B )。 A.文本框 B 垂直滚动条 C.框架 D 命令按钮 3.滚动条控件(如图所示)的Largechange属性所设置的是( A ) A.... -
VB程序设计及应用
2012-11-26 14:07:12本书是新世纪高职高专教改项目成果教材,由教育部高职高专教育专业教学改革试点院校编写。全书共分 17 章。主要介绍了 VisualBasic6.0 系统的基础知识,程序设计的常用函数、程序设计语句、数组,简单介绍了面向对象... -
VB课程设计俄罗斯方块
2011-02-25 10:46:551.1 项目名称 俄罗斯方块游戏 1.2 设计平台 VB 全称Visual Basic,它是以Basic语言作为其基本语言的一种可视化编程工具。 Vb是microsoft公司于1991年退出的windows应用程序开发工具visual意思是“可视化的”。在它刚... -
2—1 VB6.0的集成开发环境
2009-12-30 17:48:58(1)“文件”菜单:打开和保存及关闭项目,也可用于生成可执行文件,以及过的工程项目列表。 (2)“编辑”菜单:用于撤消所做的操作,执行:“查找”、“复制”、“粘贴”等编辑命令。 (3)“视图”菜单:用于在... -
Mapx4+vb 6.0实现功能全面的例子
2007-09-27 16:00:36代码名称:Mapx4+vb 6.0实现功能全面的例子 —代码部分 作者/收集者:jemen <br>开发环境:VB + MapX <br>代码介绍: <br>下载完成的工程项目文件以及运行所需要的DEMO数据,这是一个实现功能非常完整... -
VB控件属性使用大全
2011-12-15 12:02:34(1)在菜单里选择“工程-部件”,弹出“部件”对话框; (2)在对话框中选择“控件”选项卡,显示ActiveX控件列表; (3)在列表框中找到需要添加的控件名称,单击控件名称左侧的复选框; (4)使用同样的方法选择需要... -
VB(EXE)/VC(DLL)混合编程实例
2005-03-29 20:37:00VB(EXE)/VC(DLL)混合编程实例⑴ 首先,打开VC,然后新建一个Win32 Dynamic-Link Library工程,然后在出现的工程类型中选择默认的空项目"A empty DLL project"(即不包含任何文件的工程),然后...VB(EXE)/VC(DLL)混合编程实例
⑴ 首先,打开VC,然后新建一个Win32 Dynamic-Link Library工程,然后在出现的工程类型中选择默认的空项目"A empty DLL project"(即不包含任何文件的工程),然后结束向导。
⑵ 手动添加两个文件,一个"C++ Source file",一个"Text file",请注意两个文件的后缀,在源文件命名时可以不写后缀名,那么就默认为CPP文件(即C++文件),也可以写上".C"来表示是C语言源文件(个人偏好是C语言,事实上系统DLL中都是用C语言写的,特别要指出的是,这里后缀不一样,源文件中内容也要相应改变,具体不同处后面会指出);Text file取名时请把后缀名改为DEF,因为这个文件是输出函数列表定义文件。
⑶ 好了,我们就只需要这两个文件就可以了!源文件用来定义函数和具体函数内容,而DEF文件中列出所要输出的函数。下面是代码了,首先要说明的是,DLL项目和传统的EXE工程一样,有自己的主函数(就相当于main()和WinMain()函数),名字是DllMain。
⑷ 思路如下,写一个DLL的主函数(这时就可以编译生成DLL文件了,只不过没有输出函数而已),然后在主函数体外声明"extern"的函数以及函数的实现部分,代码如下:
MyDll.C文件内容如下:
#include <windows.h> /*这个头文件不能少*/
extern int __stdcall GetNum(int Num); /*extern和__stdcall这两个关键词不能少哦!调用约定共有4种方式:__fastcall、__pascal、__stdcall、__cdecl,
VC++默认调用方式为__cdecl,而VB默认调用方式则为__stdcall。*//*DLL工程主函数,这里调用不调用我们要输出的函数无关紧要了。*/
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}int __stdcall GetNum(int Num) /*具体实现*/
{ return Num; }MyDll.def内容:
EXPORTS
GetNum /*这样就表示了这个DLL文件的输出函数*/
/*如果输出函数有多个,就换行继续输入函数名称就可以了*/⑸ 编码完成,编译完成以后,就可以在工作目录下的DEBUG目录下有一个MyDll.dll文件了,把这个文件复制到系统目录下,然后就可以打开VB调用一下这个dll文件输出的函数了。
这个要特别要注意的是:
extern int __stdcall GetNum(int Num);
extern "C" int __stdcall GetNum(int Num); /*多了一个“C”*/
这是因为他们的源文件是默认的C++文件(.cpp),所以为了符合C语言调用规则,就加了一个"C"字符,但是这里我用的源文件是纯的C语言文件(.c),所以不能再加"C",不然要报错的,请特别注意!⑹好了,接下来的是VB这方面的事了,具体的我不多说了,就是一个函数声明而已了,还是得重复得声明一下:
请注意函数名称和参数都必须完全和你在DLL中定义的完全匹配!!特别是大小写要完全匹配!
Private Declare Function GetNum Lib "Mydll.dll" (ByVal Num As Integer) As Integer对于DLL输出函数中的参数含有数据指针参数,那么在VB中声明把ByVal改为ByRef就可以将数组指针传递给DLL了~!譬如:
int __stdcall Array(int *a,int num);
Declare Function (ByRef SampleA() as Long, ByVal NumSam as Integer) as Integer -
VB编程资源大全(控件 其它4)
2007-10-19 00:26:07压缩包内附帮助文件及八个示例工程(46KB) 57,s016_trayform.ZIP 该控件让你轻松地将窗体发送到系统托盘中。它会在窗体的标题栏上加一个小按钮(如图所示),按这个钮就可以让窗体驻留在系统托盘中。或者改变... -
VB编程资源大全(控件 其它3)
2007-10-19 00:18:08压缩包内附帮助文件及八个示例工程(46KB) 57,s016_trayform.ZIP 该控件让你轻松地将窗体发送到系统托盘中。它会在窗体的标题栏上加一个小按钮(如图所示),按这个钮就可以让窗体驻留在系统托盘中。或者改变... -
VB编程资源大全(控件 其它1)
2007-10-19 00:09:01压缩包内附帮助文件及八个示例工程(46KB) 57,s016_trayform.ZIP 该控件让你轻松地将窗体发送到系统托盘中。它会在窗体的标题栏上加一个小按钮(如图所示),按这个钮就可以让窗体驻留在系统托盘中。或者改变... -
VB编程资源大全(控件 其它2)
2007-10-18 17:21:15压缩包内附帮助文件及八个示例工程(46KB) 57,s016_trayform.ZIP 该控件让你轻松地将窗体发送到系统托盘中。它会在窗体的标题栏上加一个小按钮(如图所示),按这个钮就可以让窗体驻留在系统托盘中。或者改变... -
航空公司飞机订票管理系统毕业课程设计源码(vb+access实现)
2014-02-22 11:28:0023 4.1.1 创建工程项目——MIS_Ticket 23 4.1.2 创建航空公司管理信息系统的主窗体 23 4.1.3 创建主窗体的菜单 24 4.1.4 创建公用模块 25 4.2 舱位信息管理模块的实现 28 4.2.1 显示舱位信息窗体... -
JAVA上百实例源码以及开源项目
2016-01-03 17:37:40Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和... -
JAVA上百实例源码以及开源项目源代码
2018-12-11 17:07:4228个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程... -
软件工程工资管理系统
2009-07-01 11:34:03Vb6.0功能强大的应用程序开发工具,主要支持基于面向对像化的语言的各种开发项目。 2.需求分析 2.1系统需求和功能 工资管理信息系统对企业加强工资管理有着重要的作用,就一般的大型企业来说,它的设计内容非常... -
智能源码统计专家
2006-03-16 00:00:006、支持VB工程组文件、项目文件和 .frm 和 .bas 文件的统计。 7、支持汇编文件 .asm 和 .inc 的统计。 8、支持Delphi项目文件 .dpr 和 .pas、.dfm 文件的统计。 9、支持C#项目文件 .csproj 的直接统计及 .cs 文件... -
实例学习如何在ASP中调用DLL
2021-01-21 19:32:28本文通过VB5.0创建ActiveX DLL文件,这个文件模拟了一个掷色子的过程,向大家... 在VB5.0的环境下,新建一个工程,并双击新建工程窗口中ActiveX DLL图标,VB将自动为项目添加一个类模块,并将该项目类型设置为Acti -
.NET与VBA COM互操作
2010-02-08 11:37:001:在vb.net侧,做成相应的DLL工程新建一个ClassLibrary工程,删除自动生成的Class1.vb文件然后自己新增加一个ComClass类型的项目增加下面的函数 Public Function NewGuid() As String Dim g As Guid = Guid....